首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nginx重定向忽略斜杠

nginx重定向忽略斜杠
EN

Stack Overflow用户
提问于 2015-02-21 11:20:51
回答 2查看 294关注 0票数 0

我有一些看起来像这样的URL:

http://www.mywebsite.com/stuff/web-design-development

http://www.mywebsite.com/web-design/

http://www.mywebsite.com/web-design/secondary-page

基本上,我需要/web-design中的任何内容,带或不带斜杠,并包括斜杠后的任何内容(如第三个网址)重定向到/。但我遇到的问题是,我的重定向会影响第一个URL,因为它包含"web-design“。

这就是我所拥有的:

代码语言:javascript
复制
if ($request_filename ~ web-design/.+) {
    rewrite ^(.*) http://www.mywebsite.com permanent;
}

你知道我该怎么纠正这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2015-02-21 15:41:08

一个简单的位置块就可以匹配所有这些

代码语言:javascript
复制
location /web-design {
  return 301 $scheme://www.mywebsite.com;
end

这将与使用/web-design启动并重定向它的任何内容相匹配。

这里是why return and not rewrite,这里是location directive文档。

还要记住,301响应是可以缓存的,如果你遇到了奇怪的行为,可以考虑清除缓存,因为也许你的浏览器在配置不正确的时候缓存了旧的301。

票数 1
EN

Stack Overflow用户

发布于 2015-02-21 11:51:33

我能够通过简化我的重写来解决这个问题。

我没有使用if语句,而是直接使用了:

代码语言:javascript
复制
rewrite ^/web-design/?$ http://www.mywebsite.com/ permanent;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28641711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档