PHP中怎么實現(xiàn)偽靜態(tài)化頁面,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都網(wǎng)站設計、網(wǎng)站建設、外貿(mào)網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的港口網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
PHP實現(xiàn)偽靜態(tài)化頁面方法一:
在你的程序初始化時使用如下代碼:
<?php $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; $Php2Html_UrlString = str_replace("/", "", strrchr($Php2Html_FileUrl, "/")); $Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString); foreach($Php2Html_UrlQueryStrList as $Php2Html_UrlQueryStr) { $Php2Html_TmpArray = explode("|", $Php2Html_UrlQueryStr); $_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1]; } echo '假靜態(tài):$_GET變量<br />'; print_r($_GET); ?>
然后php中調(diào)用$_GET變量就像平常一樣了。
連接使用方式:
****.php/param1|1234@param2|4321
和****.php?param1=1234¶m2=4321一樣。
PHP實現(xiàn)偽靜態(tài)化頁面方法二:通過URL Rewrite實現(xiàn)鏈接靜態(tài)化
我們知道搜索引擎對于靜態(tài)頁面是非常友好的,因此很多網(wǎng)站通過生成靜態(tài)頁面等手段方便爬蟲抓取自己網(wǎng)站的內(nèi)容。但是有時候一些應用并不適合全部靜態(tài)化,比如數(shù)據(jù)變化非常大的論壇/貼吧系統(tǒng),這時候我們可以通過URL重寫來實現(xiàn)鏈接的偽靜態(tài)化,即網(wǎng)站對外使用靜態(tài)化的鏈接,而內(nèi)部實際上仍然使用動態(tài)頁面的 URL形式。比如像這樣一個鏈接:http://www.ci123.com/abc.php?action=a&id=1,我們可以改寫成http://www.ci123.com/abc/a/1.html的形式。這是搜索引擎優(yōu)化最重要的內(nèi)容之一,它還有一個額外的好處,可以使頁面有一個***鏈接,即便以后網(wǎng)站系統(tǒng)內(nèi)部鏈接有變化,通過適當改變Rewrite規(guī)則就可以保證原先的外部URL一直有效。
下面介紹2種簡單的Apache+PHP下實現(xiàn)URL重寫的方法,***種適合有服務器配置權(quán)限的用戶,第二種適合租用空間的用戶,也作為我近期的學習心得的整理。
1、對于有服務器配置權(quán)限的用戶,推薦使用Apache的mod_rewrite模塊,這里假設已經(jīng)安裝好mod_rewrite模塊。打開Apache的配置文件,找到相應主機的部分,添加以下代碼:
RewriteEngine On RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2
然后在shell里執(zhí)行service httpd reload,讓Apache重新載入配置就好了。現(xiàn)在在PHP頁面里面我們可以把鏈接寫成 abc/a/1.html的形式,Apache在解析這個 URL的時候會rewrite成abc.php?action=a&id=1的形式,并返回正確的頁面。運用正則表達式我們可以實現(xiàn)幾乎任何我們想要的鏈接形式,mod_rewrite模塊的功能異常強大,這里只是一個及其簡單的應用。
2、對于租用空間的用戶,一般都沒有辦法修改Apache的配置,這里有個變通的方法,原理是這樣的:當要傳遞參數(shù)訪問PHP 頁面時,正常情況下是通過自動全局變量$_GET來獲得,比如上面的鏈接,在頁面里可以通過$_GET['action'] 和 $_GET['id'] 來獲得,重寫URL后就不行了?,F(xiàn)在在每個頁面里require一個url_rewrite.php文件,里面代碼如下:
$filename = basename($_SERVER['SCRIPT_NAME']); if (strtolower($filename) == "abc.php"){ if (!empty($_GET[id])){ $id = intval($_GET[id]); $action = intval($_GET[action]); } else { $nav = $_SERVER["REQUEST_URI"]; $script = $_SERVER["SCRIPT_NAME"]; $nav = ereg_replace("^$script", "", urldecode($nav)); $vars = explode("/", $nav); $action = intval($vars[1]); $id = intval($vars[2]); } }
這樣$action和$id也得到了,頁面里鏈接可以寫成abc.php/a/1的形式來訪問相應頁面。
需要注意的是這種PHP實現(xiàn)偽靜態(tài)化頁面方法效率較***種低,***種方法是在WEB服務器URL解析過程中實現(xiàn)的,而這里是在PHP頁面解析過程里實現(xiàn)的,第2種方法只是變通,不得已而為之,要修改鏈接形式很不方便也不靈活。
關(guān)于PHP中怎么實現(xiàn)偽靜態(tài)化頁面問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)站名稱:PHP中怎么實現(xiàn)偽靜態(tài)化頁面
文章鏈接:http://jinyejixie.com/article22/pgesjc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、域名注冊、定制網(wǎng)站、品牌網(wǎng)站設計、自適應網(wǎng)站、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)