nginx

Nginx配置文件中location与rewrite执行的顺序

作者:admin 2017-08-30 我要评论( )

Rewrite(URL 重写)指令可以出现在 server{} 下,也可以出现在 location{} 下,它们之间是有区别的!对于出现在 server{} 下的 rewrite 指令,它的执行会在 locatio...

         最近看了下location与rewrite重写规则,为了做实验,我们在/home/www/test/ 下面新建5个文件a.html,b.html,c.html,d.hmtl,e.html。为了方便查看结果,开启重写日志rewrite_log为on,默认为off,注意,写入error log的错误级别为notice,因此rewrite_log应该定义为info

 a.png

1  先执行server中的rewrite,再执行location中的rewrite,接图如下:

2.png

在xshell终端执行:

[root@bogon ~]# curl localhost/a.html
d.html

rewrite_log如下:

4.png

 解释:1  当执行 curl localhost/a.html时, a.html匹配到/a\.html$,将uri重写为b.html

            2 然后,b.html 匹配到"^/b\.html$",将uri重写到d.html,此时并没有匹配到location中的/b.html,由此可可知:

               rewrite的在server执行的顺序优先localtion的级别

 

}

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评