【问题标题】:SSL redirects user to wrong website on apacheSSL 将用户重定向到 apache 上的错误网站
【发布时间】:2014-02-14 11:14:22
【问题描述】:

我在 2 台不同的服务器上托管 100 多个网站。我的一些客户最近注意到,当他们访问https://theirwebsite.com 时,如果他们的网站上没有 SSL,它会重定向到 apache conf 文件中的第一个 SSL 网站。我做了一些阅读,发现 SSL 网站需要自己的 IP 地址,所以我切换了我的 SSL 网站的 IP 地址。但是,我注意到问题仍然存在。 httpd.conf 中可能仍有 SSL 网站需要删除或更改,但有没有办法阻止这种情况发生?如果使用 https,我能找到一种方法让没有 https 的网站重定向到什么都没有吗?

【问题讨论】:

    标签: apache .htaccess ssl https


    【解决方案1】:

    它重定向到 apache conf 文件中的第一个 SSL 网站。

    这是因为您有 2 组用于 apache 的虚拟主机:1 组侦听端口 80(非 SSL),另一组侦听端口 443(SSL)。任何非 SSL 请求都会发送到侦听端口 80 的虚拟主机,任何 SSL 请求都会发送到侦听端口 443 的主机。当对未在任何虚拟主机中定义的主机发出请求时,它默认为“默认”虚拟主机,它成为第一个被定义的虚拟主机(例如,出现在您的虚拟主机文件中的第一个虚拟主机)。

    为了防止这种情况发生,您可以为每个非 SSL 网站定义一个 SSL 虚拟主机,或者您可以在 SSL 文件中创建一个新的“默认”虚拟主机,该虚拟主机除了重定向到非 SSL 之外什么都不做:

    RewriteEngine On
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R]
    

    【讨论】:

    • 非常有趣。非常感谢您的回答。这正是我所需要的。但你认为你可以详细说明一下吗?在 SSL 文件中创建一个新的默认虚拟主机?还是在 httpd.conf 中创建默认虚拟主机?
    • 没关系,我解决了。我只是为每个没有在其网站上安装 SSL 的网站添加一个自签名证书。这样,如果他们“不小心”输入 https:// theirwebsite.com,它仍然会指向他们。白痴。他们知道他们没有 ssl。他们只是想看看发生了什么吗?
    • 我遇到了同样的问题。最近我注意到搜索引擎对我拥有的所有域都尝试使用 https://,从而导致错误的网站,更糟糕的是,使用错误的内容,因为它们获得了该域名的默认网站的重复内容。这可能会导致较低的页面排名等。因此,这不仅仅是用户问题,它很快就会变成 SEO 问题。
    • 必须为每个需要重定向回 HTTP 的域创建自签名证书并不是一个好的解决方案。有没有人找到其他更好的方法来实现同样的目标?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 2018-01-12
    • 1970-01-01
    相关资源
    最近更新 更多