rewrite默认的flag是什么呢
来源:4-7 Rewrite规则_rewrite规则中的flag
乐事香浓番茄味
2018-01-11
我看到有些rewrite并没有第三个参数,那么默认的flag是什么啊?默认是什么匹配方式呢?
写回答
1回答
-
你好,问题很好。如果 rewrite 没有指定任何 flag ,并且正则表达式 和请求 URI 匹配时,分的情况如下:
(1)如果后面没有其它 rewrite 配置项,Nginx 会将此配置项作用于请求 URI 后, 再为请求重新匹配 location (行为类似 last);
(2)如果后面有其它 rewrite 配置项,并且这些配置项都未指定 flags 时,Nginx 会将这些 rewrite 配置项作用于请求 URI 后,再为请求重新匹配 location(行 为类似 last );
location /lua {
rewrite ^/(.*) /a/$1;
rewrite ^/(.*) /b/$1;
echo "same location: $uri";}location / {
echo "root location: $uri";}(3)如果后面有其它 rewrite 配置项,并且可以对该请求 URI 生效的配置项有具体flag 参数,那么随后的行为受该 flag 影响;
location /lua {
rewrite ^/(.*) /a/$1;
rewrite ^/(.*) /b/$1 break;
echo "same location: $uri";}location / {
echo "root location: $uri";}012018-01-14
相似问题