我有一个Apache服务器设置为侦听端口80上的几个域名和443两个(至少这是我想要的)。 所以我有我的Virtualhost *:443与“my-ssl-domain.com”和“my-other-ssl-domain.com”ServerName。这两个域也都有一个Virtualhost *:80,它使用mod_rewrite重定向到HTTPS版本。我使用让我们加密他们两个。使Apache不监听某些域的端口443
我也有多个(> 10)其他域只能通过HTTP工作。
发生什么事是,如果我去“https://www.my-non-ssl-domain.com”浏览器抱怨没有有效的证书。谷歌似乎也索引该网页,我想避免它,因为它似乎是不好的搜索引擎优化。
我希望它301重定向“https://www.my-non-ssl-domain.com”到“http://www.my-non-ssl-domain.com”或至少根本不应答,就好像HTTPS的域根本不存在一样。
我该如何解决这个问题?
然后不要使用'Virtualhost *:443',而是明确地指定一个主机名。 – CBroe
你是什么意思?我没有提到Apache在所有域(SSL和非SSL)上侦听相同的IP地址。 – koichirose
如果你使用'*:443',那么这个VirtualHost将被用作没有显式指定他们的“own”VH的所有主机名的后备。所以你需要使用像'Virtualhost somedomain.local:443'这样的表示这个VH仅用于特定的域(加上ServerAliases),但不适用于每一个没有显式配置的传入HTTPS请求。 – CBroe