rewrite默认的flag是什么呢

来源:4-7 Rewrite规则_rewrite规则中的flag

乐事香浓番茄味

2018-01-11

我看到有些rewrite并没有第三个参数,那么默认的flag是什么啊?默认是什么匹配方式呢?

写回答

1回答

Jeson

2018-01-13

你好,问题很好。如果 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";}


0
1
乐事香浓番茄味
好的,我明白了,谢谢帮助!
2018-01-14
共1条回复

Nginx入门到实践-Nginx中间件应用+搭建Webserver架构

中间件、负载均衡、应用层安全防护、动静分离、Nginx+LUA开发等

4183 学习 · 908 问题

查看课程