【发布时间】:2015-12-09 21:21:36
【问题描述】:
我有几个站点在同一个 IP 下运行,并激活了基于名称的虚拟主机支持:
- myexamplesite0.com
- myexamplesite1.com
- myexamplesite2.com
在我的 apache 配置(/etc/apache2/sites-available/default-ssl)中,我有一个重写规则来将请求从 HTTPs 重定向到 HTTP。
<VirtualHost *:443>
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect to HTTP
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^(www\.)?myexamplesite1\.com [NC]
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
[...]
如您所见,除 myexamplesite1.com 之外的所有内容都被重定向到 HTTP 版本。
现在的问题是,如果我输入 https://myexamplesite2.com,浏览器首先会要求确认蛇油证书(即请求位于 default-ssl 中)。一旦证书被接受,就会重定向到 HTTP 版本。我只是不明白为什么。
我希望首先重定向。没有证书问题。那可能吗?我错过了什么?
如果有必要,我也愿意显示一个不存在的 HTTPS 站点。
【问题讨论】: