Ubuntu 14.04 安装标准 LAMP。
在单个 IP 上,我尝试使用带 SNI 的 SSL 运行两个网站。我有两个不同的证书,它们被正确应用。我的问题是从 HTTP 重定向到正确的 HTTPS 网站。
我正在使用最新的 Firefox 进行测试,并且 TLS 设置正确。
所以,简而言之,每个 HTTP 请求都会被重定向到....
我通过禁用/启用重写模块进行了检查,没有发现任何差异
已启用站点:
(主站点)dev.domain.com.conf
。其内容是常规 SSL 虚拟主机内容……
<VirtualHost *:443>
ServerName dev.domain.com
ServerAlias dev.domain.com
...
(为了通过 HTTPS 重定向到主站点,我创建了这个额外的虚拟主机)
dev.domain.com.80.conf
。其内容如下:
<VirtualHost *:80>
ServerName dev.domain.com
ServerAlias dev.domain.com
ServerAdmin xxxxxxx
Redirect permanent / https://dev.domain.com/
</VirtualHost>
(第二个主站点)www.domain.com.conf
。其内容是常规 SSL vhost...
<VirtualHost *:443>
ServerName www.domain.com
ServerAlias www.domain.com
...
(为了通过 HTTPS 重定向到主站点,我创建了这个额外的虚拟主机)www.domain.com.80.conf
。其内容:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias www.domain.com
ServerAdmin rxxxxx
Redirect permanent / https://www.domain.com/
</VirtualHost>
即使在两个虚拟主机配置中添加了用于重定向的以下内容后,也无济于事。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
当 HTTPdev.domain.com
正确转换为 HTTPS时dev.domain.com
,HTTPwww.domain.com
会转换为 HTTPS dev.domain.com
。
此外,如果我访问两个站点的 https URL,它们都可以正常工作。只有 http 到 https 重定向不起作用。
答案1
也许是浏览器缓存,在对各种 Apache 配置进行无数次编辑之后。以下是摘要:
- mod_rewrite:不是必需的。
- NameVirtualHost:不是必需的。
- 为每个站点配置一个用于重定向目的的虚拟主机。
- 上述重定向命令。
就是这样。