現(xiàn)在很多人都喜歡用Nginx作為Web服務(wù)器部署網(wǎng)站,nginx配置起來也是相當(dāng)?shù)姆奖悖绻愕木W(wǎng)站是php語言開發(fā)的話,下面我們教大家簡單的一招快速的隱藏網(wǎng)頁的php后綴名,實(shí)現(xiàn)一種Pretty URL。

使用nginx的try_files指令輕松搞定。
在你的nginx配置文件(nginx.conf)里加上一句配置:
location / {
try_files $uri $uri/ $uri.php$is_args$args;
}
就可以實(shí)現(xiàn)隱藏網(wǎng)頁.php后綴名了。
try_files是nginx中的一個(gè)指令,有點(diǎn)類似于rewrite,用于嘗試尋找指令后面指定路徑的文件或目錄并返回。
$uri表示當(dāng)前請求的URI路徑,也就是URL域名后面的路徑,不帶參數(shù)。
$is_args表示如果請求的URL中帶有參數(shù),則$is_args代表的是“?”,如果請求的URL中沒有參數(shù)則返回空字符串,用于傳參用。
$args表示請求URL中的完整的參數(shù)。
下面根據(jù)圖示例子來解讀下nginx服務(wù)器是如何處理的:
情形1:
假設(shè)用戶訪問的URL是:yuanhuaixuetang.com/about

nginx的解析過程如下:
該URL沒有傳參數(shù),$uri 是 /about,$is_args為空,$args也為空
- nginx服務(wù)器會先去嘗試尋找about文件(相對于網(wǎng)站根目錄),如果存在則返回該文件
- 如果about文件不存在,則嘗試尋找about/目錄(相對于網(wǎng)站根目錄),如果存在則返回。
- 如果about/目錄不存在,則嘗試尋找about.php文件(相對于網(wǎng)站根目錄),如果存在則返回該文件并根據(jù)請求信息帶上后面的請求參數(shù),該例子中實(shí)際返回的是about.php,因?yàn)樵颊埱蟛粠?shù),所以實(shí)際返回的也不帶參數(shù)。
- 如果上面的都找不到,可以根據(jù)nginx里的配置返回相應(yīng)的錯(cuò)誤信息。
情形2:
假設(shè)用戶訪問的URL是:yuanhuaixuetang.com/about?id=12

nginx的解析過程如下:
該URL有傳參數(shù),$uri 是 /about,$is_args為“?”,$args為id=12
解析過程同上,不再細(xì)述,該情形最終實(shí)際返回給用戶的是:訪問域名 + about.php?id=12這個(gè)URL。
有沒有GET到這一招,覺得有用就收藏、轉(zhuǎn)發(fā)吧,記得關(guān)注「遠(yuǎn)懷學(xué)堂」,不斷有好的教程發(fā)布哦。