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

标签 apache .htaccess ssl https

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

最佳答案

it redirects to the first SSL website in the apache conf file.

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

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

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

关于apache - SSL 将用户重定向到 apache 上的错误网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316089/

相关文章:

apache - htaccess文件中继承的RewriteOptions有什么作用?

ssl - 使用 https 时出现 http 403.4 错误

linux - 使用控制台的 Symfony 缓存权限

如果嵌套路径,动态内容的 Apache Location 指令将失败

.htaccess - 将所有参数化动态 URL 转换为 PHP 中的 SEO 友好 URL

ssl - Firefox 阻止 SSL,适用于所有其他浏览器

c - SSL 连接产生 -1 错误

私有(private)IP上的apache虚拟主机

java - Apache Tomcat - 访问 Webroot 之外的文件

php - .htaccess 抛出 403 Forbidden/Zend Framework 快速启动项目创建 (Mac OS X 10.6.5)