rewrite指令
該指令通過正則表達式的使用來改變URI.可以同時存在一個或者多個指令,按照順序一次對URL進行匹配和處理。該指令可以在server塊后者location塊中配置 語法: 指令語法:rewrite regex replacement [flag]; rewrite是實現URL重定向的重要指令, regex:用來匹配URI的正則表達式; replacement:匹配成功后用來替換URI中被截取內容的字符串,默認情況如果該字符串包含“http://”、"https://"開頭,則不會繼續向下對URI進行其他處理。直接返回重寫的URI給客戶端 flag:用來設置rewrite對URI的處理行為,包含如下數據:
標記符號 說明 last 終止在本location塊中處理接收到的URI,並將此處重寫的URI作為新的URI使用其他location進行處理。(只是終止當前location的處理) break 將此處重寫的URI作為一個新的URI在當前location中繼續執行,並不會將新的URI轉向其他location。 redirect 將重寫后的URI返回個客戶端,狀態碼是302,表明臨時重定向,主要用在replacement字符串不以“http://”,“ https://”或“ $scheme” 開頭; permanent 將重寫的URI返回客戶端,狀態碼為301,指明是永久重定向;
https://"開頭,則不會繼續向下對URI進行其他處理。直接返回重寫的URI給客戶端。 結論就是: rewrite 跳轉的http路由一定要寫在 跳轉到的路由https的下面 。不然匹配到 第一個路由 跳轉也是打斷,則不會繼續向下對URI進行其他處理。直接返回重寫的URI給客戶端。