【已回应】301跟强制ssl的逻辑问题!
centos7.6宝塔7.0.3
一个网站绑定两个域名
xxx.com
www.xxx.com
同时开启301将xxx.com跳转到www.xxx.com跟强制SSl
配置文件的内容是
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
#301-START
if ($host ~ '^xcjson.com'){
return 301 https://www.xxx.com$request_uri;
}
#301-END
这样逻辑有问题啊,应该301在前面撒,不然我访问xxx.com会先跳https://xxx.com再跳https://www.xxx.com跳转三次,我要是301忘了加s那得跳转四次啊
平均一次浪费55ms的时间!!!
请修复下这个问题
您好,这个是配置重复导致的,您看前面是基于端口
非443端口的都强制到https,
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
后面这个基于域名,包含 xcjson.com 的全部跳转到 https://www.xxx.com
if ($host ~ '^xcjson.com'){
return 301 https://www.xxx.com$request_uri;
}
实现的效果都一样的,有重复。 大炮运维V587 发表于 2019-12-26 09:25
您好,这个是配置重复导致的,您看前面是基于端口
非443端口的都强制到https,
不一样的,设置强制ssl是为了www.xxx.com跟xxx.com都能跳转到https
而301是为了xxx跳转到www.xxx.com
请关闭强制SSL 或者 关闭判断443 强制SSL 你还 跳转SSL 不冲突? 本帖最后由 Xeath 于 2019-12-28 14:39 编辑
首先,这个只跳了两次,第一次由 http 跳转 https,第二次由 https 的未带 www. 子域跳转带 www. 的子域。
其次,你把你的未带 www. 跳转规则写在宝塔的规则之上,这样就只跳转了一次,即:http 的未带 www. 子域跳转到 https 的带 www. 子域上。
最后,这不是什么 bug。
Xeath 发表于 2019-12-28 14:37
首先,这个只跳了两次,第一次由 http 跳转 https,第二次由 https 的未带 www. 子域跳转带 www. 的子域。
...
我实测跳了三次,逻辑问题 qq57544477 发表于 2019-12-26 19:53
请关闭强制SSL 或者 关闭判断443 强制SSL 你还 跳转SSL 不冲突?
说了绑定两个域名了啊,一级跳二级 将301前置的确可以省去一次跳转,301可以从不带www的http,一次性跳转到带www的https,这样就可以省去强制HTTPS了。
但如果将强制HTTPS前置,跳端口和跳www就无法一次完成。 楼主 我也发现有这问题 请问怎么解决的
https://www.bt.cn/bbs/thread-63851-1-1.html
页:
[1]