【问题标题】:.htaccess SSL HTTPS For One Domain Hosted on Shared Server.htaccess SSL HTTPS 用于托管在共享服务器上的一个域
【发布时间】:2014-01-10 00:17:23
【问题描述】:
我已经疯狂地寻找答案......所以这里是场景:
我有一个托管多个域的服务器。但是,主域应该是唯一加载为 HTTPS 的域。
每当我尝试以下代码时:
重写引擎开启
RewriteCond %{SERVER_PORT} 80
重写规则 ^(.*)$ https://www.MAINDOMAIN.com/$1 [R,L]
其余域从http://www.site.com 更改为 HTTP(S)://www.MAINDOMAIN.com/FolderName 等等。
我该怎么办?
【问题讨论】:
标签:
.htaccess
ssl-certificate
【解决方案1】:
最直接的方法是只有一个虚拟主机 www.maindomain.com 在端口 443 上可用,并且只有 www.maindomain.com:80 重定向到 https。
<VirtualHost *:80>
ServerName www.maindomain.com
Redirect / https://www.maindomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.maindomain.com
SSLEngine on
...
</VirtualHost>
<VirtualHost *:80>
ServerName www.site.com
...
</VirtualHost>
不需要 RewriteRule。如果您愿意,您还可以将其他站点上的 HTTPS 重定向到 HTTP:
<VirtualHost *:443>
ServerName www.site.com
SSLEngine on
Redirect / http://www.site.com/
</Virtualhost>
否则https://www.site.com 将由https://www.maindomain.com 提供服务,因为这将是HTTPS 唯一可用的虚拟主机。这将使它成为 HTTPS 的默认虚拟主机,因此它将为所有 HTTPS 请求提供服务。