Nginx 301跳转问题。需要访问旧域名 www.a.cn 跳转至新域名 www.a.com 。但访问旧域名的 www.a.cn/blog/ 时不跳转。

2013-03-10 20:42:07 +08:00
 asher
3576 次点击
所在节点    问与答
6 条回复
BOYPT
2013-03-10 22:10:51 +08:00
因为你写的规则不对。 以下可参考:

server {
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
asher
2013-03-11 17:27:32 +08:00
楼上这么写是啥意思啊?
这样写的话就是全部跳转了
nichan
2013-03-11 17:31:42 +08:00
嗯哪啥……提问的艺术……
这贴刚出来的时候我就看见了,但是……我也是以为lz说目前的情况是 “www.a.cn/blog/ 时不跳转,应该怎么设置才能全部跳转?”
asher
2013-03-11 20:22:20 +08:00
@nichan
作为菜鸟,全站跳转我知道,网上一搜挺多。
现在就是需要访问 www.a.cn/blog/ 时不跳转,除此之外全站跳转。
您一开始认为的是正确的。

@BOYPT 的方式看起来是全站跳转吧?
xiaop
2013-03-11 20:36:41 +08:00
目测楼主用的firefox?用其他浏览器如果还是不跳转的话,试试这段代码(nginx):
if ($http_host !~ "^www\.a\.com$") {
rewrite /(.*) http://www.quxizang.com/$1 permanent;
break;
}
BOYPT
2013-03-12 09:16:05 +08:00
@xiaop 根据Nginx PitFall, IF is Evil.

所以这样会更好:

server {
server_name www.domain.com;
location /blog/ {
xxxxx; fastcgi_pass ....;
}
location / {
return 301 $scheme://domain.com$request_uri;
}
}

/blog/ 作为文本最长适配,会优先于/规则,其他则301跳转走。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62507

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX