Nginx rewrite

Nginx rewrite nginx

和apache等web服務軟件同樣,rewrite的組要功能是實現URL地址的重定向。Nginx的rewrite功能須要PCRE軟件的支持,即經過perl兼容正則表達式語句進行規則匹配的。默認參數編譯nginx就會支持rewrite的模塊,可是也必需要PCRE的支持,rewrite只能放在server{},location{},if{}中,而且只能對域名後邊的除去傳遞的參數外的字符串起做用。 web

一、rewrite指令語法 正則表達式

rewrite語法格式及參數語法說明以下: apache

rewrite <regex> <replacement> [flag]; 瀏覽器

關鍵字 正則 替代內容 flag標記 curl

關鍵字:其中關鍵字error_log不能改變 測試

正則:perl兼容正則表達式語句進行規則匹配 網站

替代內容:將正則匹配的內容替換成replacement 搜索引擎

flag標記:rewrite支持的flag標記 url

flag標記說明:

last #本條規則匹配完成後,繼續向下匹配新的location URI規則

break #本條規則匹配完成即終止,再也不匹配後面的任何規則

redirect #返回302臨時重定向,瀏覽器地址會顯示跳轉後的URL地址

permanent #返回301永久重定向,瀏覽器地址欄會顯示跳轉後的URL地址

二、rewrite示例

示例:rewrite ^/(.*) http://www.2048.com/$1 permanent;

說明:

rewrite爲固定關鍵字,表示開始進行rewrite匹配規則

regex部分是 ^/(.*) ,這是一個正則表達式,匹配完整的域名和後面的路徑地址

replacement部分是http://www.2048.com/$1 $1,是取自regex部分()裏的內容。匹配成功後跳轉到的URL。

flag部分 permanent表示永久301重定向標記,即跳轉到新的 http://www.2048.com/$1 地址上

重寫的地址不能和原地址相同,不然將無限循環跳轉

可使用curl -vL 2048.com進行測試,L參數表示遞歸訪問,發出請求屢次後將會斷開

三、rewrite企業應用場景

Nginx的rewrite功能在企業裏應用很是普遍:

※ 能夠調整用戶瀏覽的URL,看起來更規範,合乎開發及產品人員的需求。

※ 爲了讓搜索引擎搜錄網站內容及用戶體驗更好,企業會將動態URL地址假裝成靜態地址提供服務。

※ 網址換新域名後,讓舊的訪問跳轉到新的域名上。例如,訪問京東的360buy.com會跳轉到jd.com

※ 根據特殊變量、目錄、客戶端的信息進行URL調整等

相關文章
相關標籤/搜索