nginx-rewrite指令中的flag参数
Nginx的ngx_http_rewrite_module模块使用PCRE(pcre.x86_64)正则表达式重定向URL。
- flag 参数
flag参数 | 意义 |
---|---|
last | 终止rewrite指令匹配,然后对当前重写的新URI在rewrite指令集上重新查找 |
break | 停止处理后续rewrite指令集,并不在重新查找,但是当前location内剩余非rewrite语句和location外的的非rewrite语句可以执行 |
permant | 返回301永久重定向,地址栏显示跳转后的地址 |
redirect | 返回302临时重定向,地址栏显示跳转后的地址 |
说明
- nginx可以通过增加
rewrite_log on; error_log logs/error.log notice;
调试 rewrite; - last:将rewrite后的地址重新在server标签执行;
- break:将rewrite后地址重新在当前的location标签执行;
- last和break正常返回200状态码;
- last一般写在server和if中,而break一般使用在location中;
- last不终止重写后的url匹配,而break终止重写后的匹配;
- 一般使用302重定向是在一个网站或网页在24到48小时之内临时移到其它位置,建议尽量采用301重定向;
- rewrite指令执行过程中如果循环超过10次,则返回500 Internal Server Error错误;
- rewrite正则表达regex式中包含 “}” 或 “;”时整个表达式需要用双引号或单引号引起来;
- nginx可以通过增加
参考文档