宝塔面板强制HTTPS开启后 导致其他域名无法访问和跳转的问题

发布于 2022-01-05 17:49:52

不知道大家有没有这样的状况:

就是一个站绑定了多个域名,但是都需要跳转到主域名上。如果在宝塔面板上开启了强制HTTPS,其他域名访问时会因为证书不正确,而无法访问也无法跳转的情况。

浏览器会出现隐私设置错误的提示:

以前让其他域名跳转到主域名,我是通过一条伪静态跳转规则实现的:

if ($host != 'wp.com.cn' ) {
rewrite ^/(.*)$ https://www.zwsq.com/$1 permanent;
}

为什么开启强制HTTPS后就证书错误无法跳转了呢?打开网站配置文件,我发现了问题。

#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END

这就是强制HTTPS的规则。但是,这个规则没有区分主域名啊。你什么域名访问,就直接到这个域名的https了。

解决方法有两个:

第一种:继续把跳转规则写在伪静态里面,然后把配置文件里的$host改成你的主域名。

#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://wp.com.cn$1 permanent;
}
#HTTP_TO_HTTPS_END

第二种:把跳转规则写到配置文件的强制HTTPS规则前面,让他先执行。

if ($host != 'wp.com.cn' ) {
rewrite ^/(.*)$ https://www.zwsq.com/$1 permanent;
}

#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
0 条评论

发布
问题