SSL 将用户重定向到 apache 上的错误网站

Kat*_*hai 3 apache .htaccess ssl https

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

Jon*_*Lin 7

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

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

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

RewriteEngine On
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R]
Run Code Online (Sandbox Code Playgroud)