利用PHP實現URL靜態化

2021-09-30 07:22:12 字數 1914 閱讀 5753

從今天開始會陸續穿插一些php的使用技巧,以更方便大家在基礎的學習過程中,對php能有乙個更清晰的認識和使用。

現在網上的絕大多數頁面都是動態頁面,而我們為了保證對搜尋引擎友好,讓搜尋引擎收錄更加方便,因此需要把動態頁面進行靜態化,但如何實現靜態就需要我們從程式方面進行考慮了。

對php來講,實現程式頁面靜態化有兩個方式:生成真正的靜態化頁面,另一種是就是偽靜態,下面我就對這兩種方式分別進行詳細的介紹和說明。

真正的靜態化頁面

真正的靜態化頁面是通過生成靜態的html頁面,並採用採用某種機制定時重新整理靜態頁面,這種方式對使用者訪問來說效率最高,能夠支援較大的訪問量,同時對後台資料庫的操作大大降低,能夠讓有限的伺服器資源做更多其他的工作。但這種方式也有乙個弊端,就是對伺服器程式有一定要求,如果**的內容很龐大,在生成靜態頁面及進行儲存讀取方面可能就會有一些影響,不過採用合理的機制可以減少和避免這種情況發生。

這種方式適合那種cms系統,特別是內容新增上去以後,不會或很少會進行頻繁修改更新操作的**。比較常見的方式是使用模版程式進行實現,在php 中,最常用的大概應該是smarty了吧。

php實現偽靜態

再有一種就是偽靜態方式,即使用者和搜尋引擎看到的是.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

這實際上也是一種重寫的方式,這種方式適合與我們廣大的個人站長。另一種實現偽靜態的方式就是通過程式來進行實現了,如果你對程式實現感興趣,就可以使用這種方式實現:

函式**:

function  mod_rewrite()

}$_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 』 ];

}}

基本利用php實現url靜態化的方式就是上面這些了,如果你仔細看**和命令的話,會發現,靜態化其實質上都是一樣的,都是通過某種手段把動態化的鏈結進行轉換成為靜態鏈結(真正靜態化頁面不算)。

php中實現URL靜態化

url 靜態化是乙個利於搜尋引擎的設定,通過 url 靜態化,達到原來是動態的 php 頁面轉換為靜態化的 html 頁面,當然,這裡的靜態化是一種假靜態,目的只是提高搜尋引擎的搜尋量 apache 伺服器下配置 url 靜態化的 rewrite 規則 apache 2.x 的使用者請檢查 conf...

PHP 如何實現靜態化

根據模版生成靜態頁面 模版是沒有內容的html頁面,也就是要生成的靜態頁面的版式。根據模版生成靜態頁面的方法是根據對模版檔案中的html 讀取,然後將關鍵字進行內容替換並寫入乙個新的html靜態頁面,由此實現根據模版生成靜態頁面。資料庫與靜態頁面的關係 一般說,在實際的應用中,靜態頁面生成是在系統向...

php實現頁面靜態化

php生成靜態html頁面的方法 1.gid get gid 0 商品id goods statis file goods file gid.html 對應靜態頁檔案 expr 3600 24 10 靜態檔案有效期,十天 if file exists goods statis file else e...