91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中怎么實現偽靜態化頁面

發布時間:2021-08-06 15:35:05 來源:億速云 閱讀:210 作者:Leah 欄目:編程語言

PHP中怎么實現偽靜態化頁面,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

PHP實現偽靜態化頁面方法一:

在你的程序初始化時使用如下代碼:

<?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 '假靜態:$_GET變量<br />';   print_r($_GET);   ?>

然后php中調用$_GET變量就像平常一樣了。

連接使用方式:

****.php/param1|1234@param2|4321

和****.php?param1=1234&para;m2=4321一樣。

PHP實現偽靜態化頁面方法二:通過URL Rewrite實現鏈接靜態化

我們知道搜索引擎對于靜態頁面是非常友好的,因此很多網站通過生成靜態頁面等手段方便爬蟲抓取自己網站的內容。但是有時候一些應用并不適合全部靜態化,比如數據變化非常大的論壇/貼吧系統,這時候我們可以通過URL重寫來實現鏈接的偽靜態化,即網站對外使用靜態化的鏈接,而內部實際上仍然使用動態頁面的 URL形式。比如像這樣一個鏈接:http://www.ci123.com/abc.php?action=a&id=1,我們可以改寫成http://www.ci123.com/abc/a/1.html的形式。這是搜索引擎優化最重要的內容之一,它還有一個額外的好處,可以使頁面有一個***鏈接,即便以后網站系統內部鏈接有變化,通過適當改變Rewrite規則就可以保證原先的外部URL一直有效。

下面介紹2種簡單的Apache+PHP下實現URL重寫的方法,***種適合有服務器配置權限的用戶,第二種適合租用空間的用戶,也作為我近期的學習心得的整理。

1、對于有服務器配置權限的用戶,推薦使用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重新載入配置就好了。現在在PHP頁面里面我們可以把鏈接寫成 abc/a/1.html的形式,Apache在解析這個 URL的時候會rewrite成abc.php?action=a&id=1的形式,并返回正確的頁面。運用正則表達式我們可以實現幾乎任何我們想要的鏈接形式,mod_rewrite模塊的功能異常強大,這里只是一個及其簡單的應用。

2、對于租用空間的用戶,一般都沒有辦法修改Apache的配置,這里有個變通的方法,原理是這樣的:當要傳遞參數訪問PHP 頁面時,正常情況下是通過自動全局變量$_GET來獲得,比如上面的鏈接,在頁面里可以通過$_GET['action'] 和 $_GET['id'] 來獲得,重寫URL后就不行了。現在在每個頁面里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實現偽靜態化頁面方法效率較***種低,***種方法是在WEB服務器URL解析過程中實現的,而這里是在PHP頁面解析過程里實現的,第2種方法只是變通,不得已而為之,要修改鏈接形式很不方便也不靈活。

關于PHP中怎么實現偽靜態化頁面問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

宝山区| 蒙城县| 庆云县| 左贡县| 河北区| 和平区| 呼和浩特市| 手游| 苗栗县| 中卫市| 娄底市| 奉化市| 尉犁县| 泰和县| 伽师县| 鄂托克前旗| 色达县| 曲阳县| 建宁县| 普格县| 开阳县| 托克托县| 全椒县| 潼关县| 石楼县| 岳西县| 湛江市| 广汉市| 从江县| 汶川县| 柳江县| 罗田县| 舟山市| 阿拉善盟| 乌鲁木齐市| 威宁| 桂平市| 满洲里市| 元谋县| 江源县| 毕节市|