标签:return 重定向 third rewrite nginx second location 模块
nginx rewrite 模块
return 指令
(1) 语法
(2) CODE
-
301 永久重定向
-
302 临时重定向,禁止缓存
-
303 临时重定向,允许改变请求方法,临时重定向,禁止缓存
-
307 临时重定向,不允许改变请求方法,临时重定向,禁止缓存
-
308 永久重定向,不允许改变请求方法
(3) return 在各上下文的执行顺序
server return > location return > error_page
rewrite 指令
last 和 break 区别演示
假设 html 根目录如下:
```nginx
location /first {
rewrite /first(.*) /second$1 break;
return 200 "first";
}
location /second {
rewrite /second(.*) /third$1 last;
return 200 "second";
}
location /test {
rewrite /xxxtest(.*) /second$1 break;
return 200 "test";
}
location /third {
return 200 "third";
}
演示 last 与 break 区别:
(1)访问 /first/1.html,会重定向到 /second$1,此时使用了 break,则停止继续匹配,直接访问 /second/1.html,这里返回 404
(2)访问 /second/3.html,会重定向到 /third$1,此时使用了 last,所以不会直接输出 /third/3.html,而是继续匹配,进入 location /third
,然后返回 third
。
(3)访问 /test/1.html,此时 location /test
下的 rewrite 重定向失败(匹配失败),会直接走后面的 return 语句,返回 test
。
rewrite 301/302 重定向
开启 rewrite_log
rewrite_log 开启后,可以看到重定向日志,以便调试
标签:return,重定向,third,rewrite,nginx,second,location,模块 来源: https://www.cnblogs.com/GManba/p/14092778.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。