1. Rewrite指令的最后一项参数为flag标记,flag标记有:
1.1 last 相当于apache里面的[L]标记,表示rewrite。
1.2 break本条规则匹配完成后,终止匹配,不再匹配后面的规则。
1.3 redirect 返回302临时重定向,浏览器地址会显示跳转后的URL地址。
1.4 permanent 返回301永久重定向,浏览器地址会显示跳转后的URL地址。
使用last和break实现URI重写,浏览器地址栏不变。
使用alias指令必须用last标记;
使用proxy_pass指令时,需要使用break标记。
Last标记在本条rewrite规则执行完毕后,会对其所在server{......}标签重新发起请求
break标记则在本条规则匹配完成后,终止匹配。
2. Rewrite规则相关指令
2.1. break指令
使用环境:server,location,if;
该指令的作用是完成当前的规则集,不再处理rewrite指令。
2.2. if指令
使用环境:server,location
该指令用于检查一个条件是否符合,如果条件符合,则执行大括号内的语句。If指令不支持嵌套,
不支持多个条件&&和||处理。
2.3. return指令
语法:return code ;
使用环境:server,location,if;
该指令用于结束规则的执行并返回状态码给客户端。
示例:如果访问的URL以".sh"或".bash"结尾,则返回403状态码
location ~ .*\.(sh|bash)?$
{
return 403;
}
2.4. rewrite 指令
语法:rewriteregex replacement flag
使用环境:server,location,if
该指令根据表达式来重定向URI,或者修改字符串