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

啊老师 2019-12-21 3406

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

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

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

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

if ($host != 'wp.com.cn' ) {
rewrite ^/(.*)$ https://www.wpzw.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.wpzw.com/$1 permanent;
    }
    
    #HTTP_TO_HTTPS_START
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }
    #HTTP_TO_HTTPS_END


axure商城
签名:WordPress资深老用户,用过的插件和主题连起来可以绕地球一圈!<a href="#">测试连接</a>
最新回复 (1)
  • 啊老师 站长本人 2019-12-21
    0 引用 2

    一般SSL证书是包含不带www的和带www的两个域名。(本站wp.com.cn和www.wp.com.cn)
    其他域名比如wp.org要绑定到这个站上,那么没有证书,https://wp.org是无法访问也无法跳转的。只有http://wp.org这样的才会跳转。当然一般用户也没有那么变态,不会在域名输错的情况下还在前面加上https。

    导致一开始提到的错误。就是因为强制HTTPS规则会把http://wp.org带到https://wp.org,而又没有wp.org这个域名的证书。直接就GG了。

    签名:WordPress资深老用户,用过的插件和主题连起来可以绕地球一圈!<a href="#">测试连接</a>
    • WP中文网 - WordPress中文论坛
      3
        登录 注册 QQ登录
返回