我需要强制主域上的ssl而不是子域

时间:2014-03-28 02:22:42

标签: .htaccess mod-rewrite ssl

www.mydomain.com上的主站点使用SSL证书设置为安全站点。

我需要创建一个不受保护的子域(http://open.mydomain.com)。

我正在使用InMotionHosting.com。我在cPanel中创建了子域并将其指向public_html / open的文件夹(主站点位于public_html / mainsite)但是当我尝试访问子域URL时,我在Chrome中遇到SSL错误,在IE中我得到了重定向到https://www.mydomain.com/open

我该如何解决这个问题?

这是我的.htaccess文件:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

2 个答案:

答案 0 :(得分:2)

这对我有用:

<IfModule mod_rewrite.c>

RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} !^sub.example.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

</IfModule>

如果您想要多个子域,请更改以下行:

RewriteCond %{HTTP_HOST} !^(sub|lolo).example.com$

答案 1 :(得分:1)

将规则更改为:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]