我在单个主域下拥有多个域名作为插件域。 我也买了主域名的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就可以了。
答案 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]