HTTPS重定向.htaccess问题与插件域

时间:2014-01-11 18:45:09

标签: .htaccess redirect https

我在单个主域下拥有多个域名作为插件域。 我也买了主域名的ssl。 强制所有非ssl到ssl我使用以下.htaccess代码

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^$ https://www.maindomain.com/$1 [R,L]

这很好。但问题是如果我输入addondomain.info它也会重定向到https://www.maindomain.com/addondomain.info/

我只想要主域名做https重定向怎么做???

注意:如果我输入www.addondomain.info而不是简单的addondomain.info就可以了。

2 个答案:

答案 0 :(得分:2)

为其添加另一个条件:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^$ https://www.maindomain.com/$1 [R,L]

此外,您需要将它放在htaccess文件的最顶层,以便在任何其他规则之前应用它。

答案 1 :(得分:1)

可能会因您的托管条件而异,但根据我的经验,唯一可以强制所有人在共享托管环境中强制https并排除子域的逻辑如下所示:

RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^(www\.)?ADDON_DOMAIN\.com$ [NC] RewriteRule .* - [L]
#这是必需,以确保在导航到附加域后不再应用其他条件#
RewriteCond %{HTTPS} off
#现在您已经定义了您的排除并确保其逻辑独立于所有其他URI请求,必须再次重新建立此条件#
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]