PHP實現URL靜態化

來源:互聯網
上載者:User

再有一種就是偽靜態方式,即使用者和搜尋引擎看到的是.html尾碼的靜態頁面,但實際上它還是動態程式,只不過是通過某種方式進行了偽裝。

這種方式也有兩種實現方式:

第一種是通過web伺服器,進行url rewrite實現連結的靜態化,下面以apache為例來說明一下其實現方式。對於有伺服器配置許可權的使用者,推薦使用apache的mod_rewrite模組,這裡假設已經安裝好mod_rewrite模組。開啟apache的設定檔,找到相應主機的部分,添加以下代碼:

 代碼如下 複製代碼
rewriteengine on
rewriterule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2


然後在shell裡執行service httpd reload,讓apache重新載入配置就好了。

但對於我們大多數人來講,我們購買的只是空間,根本沒有許可權去修改apache的設定檔,那就沒有辦法了嗎?不,當然有辦法,首先我們進入到我們的空間的根目錄下(如public_html),然後建立一個檔案名稱為.htaccess的檔案。這個檔案內容基本如下:

 代碼如下 複製代碼
rewriteengine on
rewritebase /
rewriterule ^post/([0-9]+).htm read.php?1
rewriterule ^post/([0-9]+)_([0-9]+).htm read.php?1&page=2
rewriterule ^post/([0-9]+)_([0-9]+)_([0-9]+).htm read.php?1&page=2&=3

 

php程式寫法

 代碼如下 複製代碼

function  mod_rewrite(){
         if ( isset ( $_server [ ’ path_info ’ ])){
                 $url   =   substr ( $_server [ ’ path_info ’ ] , 1 );
                 $url   =   explode ( ’ / ’ , $url );
                 foreach  ( $url   as   $key   => $value ){
                         if ( $key % 2 != 1 ){
                                 if ( $value != ’’ ) $_get [ $value ] = $url [ $key + 1 ];
                                 $querystring [] = $value . ’ = ’ . $url [ $key + 1 ];
                        }
                }
                 $_server [ ’ query_string ’ ] = implode ( " & " , $querystring );
    $_server [ ’ php_self ’ ] = substr ( $_server [ ’ php_self ’ ]

 , 0 , strpos ( $_server [ ’ php_self ’ ] , ’ .php ’ ) + 4 );
                 $_server [ ’ request_uri ’ ] = $_server [ ’ php_self ’ ]

. ’ ? ’ . $_server [ ’ query_string ’ ];
        }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.