我有一个虚拟主机的数量,其中大部分没有或需要https://连接,并有一些这样做的服务器。 我想要发生的是不小心键入“ https://mynonsecuresite.com ”获取默认错误信息(或redirect到端口80站点)的用户。
目前,如果有人inputhttps://mynonsecuresite.com/,他们会以某种方式redirect到https://mysecuresite.com/
请注意,这并不是Apacheconfiguration设置列表中的虚拟主机提供默认页面的问题,实际上URL通过似乎是redirect的方式更改为https://mysecuresite.com/ ,而不是Apache mod_rewriteredirect。
我试图创build一个默认的虚拟主机,该主机在Apache站点启用的目录中被设置为000-default。
<VirtualHost 123.123.123.123:443> ServerName default-web ServerAlias mynonsecuresite.com www.mynonsecuresite.com DocumentRoot /home/virtual/default-web ErrorDocument 404 /index.php </VirtualHost>
重新启动服务器后,网站仍然redirect到https://mysecuresite.com/
看着Apache的重写日志,工作中没有错误的重写,所以我不太清楚这是怎么回事。
不知道是否相关,但它是一个Ubuntu 12.04服务器。 我不记得在以前的Debian机器上这是一个问题。 我也有shibboleth2安装为一个网站的安全联合login。
由于所请求的域名在http标题中(因此,当apache必须决定使用哪个vhostconfiguration时,它仍然是encryption的),无论用户input什么域名,用户都可以获得https://mysecuresite.com/的内容发送到https://mysecuresite.com/的IP和端口443
关于我的头顶,我可以build议在mysecuresite.com的虚拟主机中的以下代码片段redirect到所请求网站的http版本,如果它不符合“mysecuresite.com”
RewriteEngine On RewriteCond %{HTTP_HOST} !^mysecuresite.com$ RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [L,R]
确保浏览器支持TLS SNI服务器名称指示并启用,以便客户端可以向Apache发送所需的正确主机名。