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式中包含 “}” 或 “;”时整个表达式需要用双引号或单引号引起来;