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調整等