1. 程式人生 > >Nginx rewrite四種flag

Nginx rewrite四種flag

利用nginx的rewrite命令,可以實現URL的重寫,可在nginx配置檔案的server、location、if部分使用,對於rewrite有四種不同的flag。

redirect:返回302臨時重定向,瀏覽器位址列會顯示跳轉後的URL地址,爬蟲不會更新URL
permanent:返回301永久重定向,瀏覽器位址列會顯示跳轉後的URL地址,爬蟲會更新URL
break:停止處理後續rewrite指令集,不會跳出location作用域,不再進行重新查詢,終止匹配,URL地址不變
last:停止處理後續rewrite指令集,跳出location作用域,並開始搜尋與更改後的URI相匹配的location,URL地址不變

其中redirect和permanent很好理解,直接對URL地址進行重定向,顯示跳轉後的URL地址,從實現功能的角度看,redirect和permanent是一樣的,不存在好壞和效能上的問題,主要會對seo所有影響。

舉例說明break和last,下面是一個配置示例:

1234567891011 location/abc/{rewrite^/abc/(.*)/whsir/$1break;return401;}location/opq/{rewrite^/opq/(.*)/whsir/$1last;return402;}location/whsir/{return403;}

訪問http://DEMO/abc/*時,返回404,如果whsir目錄下存在對應檔案則返回200

訪問http://DEMO/opq/*時,匹配到了/whsir/,然後跳出location作用域,匹配到了location /whsir/,然後返回403

break和last一樣都會停止處理後續rewrite模組指令的執行,但是last會重新發起一個請求,並重新匹配location

0