多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## rewrite和return执行顺序1 当访问/images的时候因为有了last,所以直接跳出去执行了/pics URL了,当执行到/pics URL后,地址也进行了重写,但是要先执行return,最后触发了return,最后的结果是 "return 200 in /pics",并没有去访问/photos ; ``` location /images { rewrite /images/(.*) /pics/$1 last; return 200 "return 200 in /images"; } location /pics { rewrite /pics/(.*) /photos/$1; return 200 "return 200 in /pics"; } ``` ## rewrite和return执行顺序2 当访问/images的时候因为有了last,所以直接跳出去执行了/pics URL了,当执行到/pics URL后,地址也进行了重写,并触发了break,最后去执行/photos的地址; 视频中演示是返回 "return 200 in /photos", 我测试是返回/photos/1.html中的内容; ``` location /images { rewrite /images/(.*) /pics/$1 last; return 200 "return 200 in /images"; } location /pics { rewrite /pics/(.*) /photos/$1 break; return 200 "return 200 in /pics"; } location /photos { return 200 "return 200 in /photos"; } ``` ## 总结 1. 当rewrite 中有 last和break的时候,不会执行return语句; 2. 当rewrite 中没有last和break的时候会去return;这样可能就会破坏了重写的目的;