現在很多人都喜歡用Nginx作為Web服務器部署網站,nginx配置起來也是相當的方便,如果你的網站是php語言開發的話,下面我們教大家簡單的一招快速的隱藏網頁的php后綴名,實現一種Pretty URL。
使用nginx的try_files指令輕松搞定。
在你的nginx配置文件(nginx.conf)里加上一句配置:
location / {
try_files $uri $uri/ $uri.php$is_args$args;
}
就可以實現隱藏網頁.php后綴名了。
try_files是nginx中的一個指令,有點類似于rewrite,用于嘗試尋找指令后面指定路徑的文件或目錄并返回。
$uri表示當前請求的URI路徑,也就是URL域名后面的路徑,不帶參數。
$is_args表示如果請求的URL中帶有參數,則$is_args代表的是“?”,如果請求的URL中沒有參數則返回空字符串,用于傳參用。
$args表示請求URL中的完整的參數。
下面根據圖示例子來解讀下nginx服務器是如何處理的:
情形1:
假設用戶訪問的URL是:yuanhuaixuetang.com/about
nginx的解析過程如下:
該URL沒有傳參數,$uri 是 /about,$is_args為空,$args也為空
- nginx服務器會先去嘗試尋找about文件(相對于網站根目錄),如果存在則返回該文件
- 如果about文件不存在,則嘗試尋找about/目錄(相對于網站根目錄),如果存在則返回。
- 如果about/目錄不存在,則嘗試尋找about.php文件(相對于網站根目錄),如果存在則返回該文件并根據請求信息帶上后面的請求參數,該例子中實際返回的是about.php,因為原始請求不帶參數,所以實際返回的也不帶參數。
- 如果上面的都找不到,可以根據nginx里的配置返回相應的錯誤信息。
情形2:
假設用戶訪問的URL是:yuanhuaixuetang.com/about?id=12
nginx的解析過程如下:
該URL有傳參數,$uri 是 /about,$is_args為“?”,$args為id=12
解析過程同上,不再細述,該情形最終實際返回給用戶的是:訪問域名 + about.php?id=12這個URL。
有沒有GET到這一招,覺得有用就收藏、轉發吧,記得關注「遠懷學堂」,不斷有好的教程發布哦。