前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx rewrite的4中flag的区别

nginx rewrite的4中flag的区别

作者头像
十毛
发布2021-07-16 11:16:39
6040
发布2021-07-16 11:16:39
举报
文章被收录于专栏:用户1337634的专栏

rewrite可以改下请求的url,改写后可以以重定向的方式返回给调用方, 也可以继续匹配location,这些不同的行为是通过指令最后的flag来区分的

4个flag

  • permanent: 永久重定向,nginx返回301给调用方
  • redirect: 临时重定向,nginx返回302给调用方
  • last: 使用改写后的URL,重新在location上匹配
  • break: 结束指令脚本执行,不再匹配,也不再执行后面的return指令(如果有的的话),直接去root或alias匹配对应的资源,如果不存在则返回404
  • 空: 如果没有设置flag,则会继续执行后面的指令

示例

以下不同的rewrite规则下,访问 /first/file.txt 分别返回什么?

  • 默认的空值
代码语言:javascript
复制
location /first {
    rewrite /first(.*) /second$1;
    return 200 "first!";
}
location /second {
    return 200 "second!";
}

返回 "first!",因为flag为空的时候,会继续执行后面return指令

  • break
代码语言:javascript
复制
location /first {
    rewrite /first(.*) /second$1 break;
    return 200 "first!";
}
location /second {
    return 200 "second!";
}

返回 second目录下的file.txt文件,因为break后就不再匹配,而是去root目录下匹配文件

  • last
代码语言:javascript
复制
location /first {
    rewrite /first(.*) /second$1 last;
    return 200 "first!";
}
location /second {
    return 200 "second!";
}

返回 "second!",因为last使用改写后的url重新匹配,这个时候就会匹配到 location /second

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4个flag
  • 示例
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档