.htaccess SSL HTTPS用于在共享服务器上托管的一个域

时间:2014-01-10 00:17:24

标签: .htaccess ssl-certificate

我疯狂地搜索了一下这个问题的答案......所以这就是场景:

我有一台托管多个域的服务器。但是,主域应该是唯一一个加载为HTTPS的域。

每当我尝试以下代码时:

RewriteEngine On

RewriteCond%{SERVER_PORT} 80

RewriteRule ^(。*)$ https://www.MAINDOMAIN.com/ $ 1 [R,L]

其他域名从http://www.site.com 更改为 HTTP(S)://www.MAINDOMAIN.com/FolderName,依此类推。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

最直接的方法是在端口443上只有一个虚拟主机www.maindomain.com,并且只有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请求提供服务。

相关问题