1注意點:在重寫的時候,一定要注意,if 和後面的括號是要有乙個空格的
if ($host ~ .*\.com )
2.在重寫的時候,需要使用正規表示式
$host 代表網域名稱,首先判斷網域名稱,
來看這個正則:
rewrite ^/de/(.*)$ permanent
代表網域名稱下面的 .com/de/這個路徑下面的,重寫為
其中$1代表前面括號中匹配的字元也就是說字元 ^/de/(.*)$ 中的(.*) 就是後面的$1,如果還有括號,依次為$2,$3
最後乙個字元可以用下面的:
rewrite指令的最後一項引數為flag標記,支援flag標記有:
1.last 相當於apache裡面的[l]標記,表示rewrite。
2.break本條規則匹配完成後,終止匹配,不再匹配後面的規則。
3.redirect 返回302臨時重定向,瀏覽器位址會顯示跳轉後的url位址。
4.permanent 返回301永久重定向, 瀏覽器位址會顯示跳轉後的url位址。
使用last和break實現uri重寫,瀏覽器位址列不變。而且兩者有細微差別,使用alias指令必須用last標記;使用proxy_pass指令時,需要使用break標記。last標記在本條rewrite規則執行完畢後,會對其所在server標籤重新發起請求,而break標記則在本條規則匹配完成後,終止匹配。
一般在跟location中(location /)或直接在server標籤中編寫rewrite規則,推薦使用last標記;在非根location中(location /cms/),則使用break。
例如:rewrite ^/test(.*)$ permanent;
訪問 會跳轉到 ?id=5
Nginx Rewrite重寫規則
rewrite 主要的功能就是實現url的重寫,nginx的rewrite功能是使用nginx提供的全域性變數或自己設定的變數,結合正規表示式和標誌位實現url重寫以及重定向。本文給大家講述實際專案中常用到的rewrite規則。nginx的rewrite功能需要pcre軟體的支援,即通過perl相容...
Nginx Rewrite重寫技術
permanent last 相當於apache裡的 l 標記,表示完成rewrite break 本條規則匹配完成後,終止匹配,不再匹配後面的規則 redirect 返回302臨時重定向,瀏覽器位址會顯示跳轉後的url位址 permanent 返回301永久重定向,瀏覽器位址會顯示跳轉後url位址...
Nginx Rewrite位址重寫
1 什麼是rewrite rewrite對稱url rewrite,即url重寫,就是把傳入web的請求重定向到其他url的過程。從安全角度上講,如果在url中暴露太多的引數,無疑會造成一定量的資訊洩漏,可能會被一些黑客 利用,對你的系統造成一定的破壞,所以靜態化的url位址可以給我們帶來更高的安全...