nginx rewrite 重寫規則

2021-06-26 23:31:30 字數 924 閱讀 8077

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位址可以給我們帶來更高的安全...