Nginx之rewrite四種flag

利用nginx的rewrite命令,能夠實現URL的重寫,可在nginx配置文件的server、location、if部分使用,對於rewrite有四種不一樣的flag。nginx

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,下面是一個配置示例:spa

location /abc/ {server

rewrite ^/abc/(.* /whsir/$1 break;
return 401;
}
location /opq/ {
rewrite ^/opq/(.*)  /whsir/$1 last;
return 402;
}
location /whsir/ {
return 403;
}

訪問http://DEMO/abc/*時,返回404,若是whsir目錄下存在對應文件則返回200seo

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

break和last同樣都會中止處理後續rewrite模塊指令的運行,可是last會從新發起一個請求,不管請求成功或者失敗,並從新匹配location。作用域

相關文章
相關標籤/搜索