2016-01-15 65 views
0

到page.html中我使用nginx的使用,並希望我的網址,從page.php文件更改爲page.html中 有我想要實現兩件事情,從page.php文件重寫文件擴展名nginx的

  1. 從domain.com/page.php更改網址 - > domain.com/page.html
  2. 我的頁面中的anchore標籤是domain.com/page.html,但實際頁面是page.php。我希望這能夠在不改變我的錨標記的情況下工作。
  3. 我有一個像domain.com/page.php?get=value這樣的URL必須像domain.com/value

由於nginx的知識有限,請建議我的腳本

回答

2

當有人表示他們想要重寫A到B的URL,但他們通常意味着相反。他們真正想要的是URL地址欄顯示B,但是A.

實際訪問現有內部資源從你的問題,我認爲,你想要的URL地址欄顯示page.html但內部的page.php資源提供服務。

讓我們假設你已經混的內容,一些.html有的.php,所以首先你可能要與內部重寫這樣既.html.php文件名可以測試刪除任何.html擴展。 內部重寫不會影響URL地址欄,但只是讓服務器更容易在內部路由請求。

location ~* \.(html|php)$ { 
    rewrite ^(.*)\.(html|php)$ $1 last; 
} 

根位置可以再延長過程中少URI和測試的.html.php文件的存在,和其他任何你喜歡的。

location/{ 
    try_files $uri $uri/ $uri.html @php; 
} 

PHP文件卸載到其中包含的代碼上游將請求發送到PHP解釋命名位置:

location @php { 
    try_files $uri.php /page.php?get=$uri; 

    include  fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_pass ...; 
} 

上述nginx指令的所有都是documented here