nginx rewrite 问题求助

2018-10-17 15:46:04 +08:00
 jtsai

一个站点想全站 cdn,想把没带 www 和 http 的都 301 到 https://www.?.com ,写了这下面这条规则,浏览器返回 “重定向次数太多了” 正确的配置应该是怎样的?

rewrite ^/(.*)$ https://www.?.com/$1 permanent;
937 次点击
所在节点    问与答
3 条回复
0ZXYDDu796nVCFxq
2018-10-17 16:06:46 +08:00
正确姿势是加两个,server

server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com$request_uri;
access_log off;
}

server {
listen 443 ssl;
server_name example.com;
return 301 https://www.example.com$request_uri;
access_log off;
}
jtsai
2018-10-17 16:42:18 +08:00
@gstqc 我理解的,cdn 过来的时候就一个 ip,我们可以设置他是 http 或者 https,也获取不到他的域名?所有你上面的配置好像不太适合?还是我理解错误了?
ysc3839
2018-10-17 18:48:21 +08:00
rewrite 是用来匹配有一定规则的网址的,像这种“匹配任意网址”的操作不应该用 rewrite,用其他的方法性能更好。
比如这个问题可以用 return 301。像重定向任意网址到 index.php 可以用 try_files。

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

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

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

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

© 2021 V2EX