我的托管帐户中有多个插件域。我想将非https重定向到主域名的https,只有一个插件域。
我遇到的问题是www.firstaddondomain.com没有重定向到https://www.firstaddondomain.com。相反,它似乎根本没有重定向。它保留在www.firstaddondomain.com。
注意:我不想将所有http重定向到https。我有另一个我不想重定向到https的插件域。
这是我的.htaccess文件的样子:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?maindomain\.com$ [NC]
RewriteRule ^$ https://www.maindomain.com/$1 [R,L]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?firstaddondomain\.com$ [NC]
RewriteRule ^$ https://www.firstaddondomain.com/$1 [R,L]
更新: 谢谢你的回答,anubhava。我的第一个插件域实际上是.org域名,所以我更新的.htaccess文件与你的答案略有不同。
这是我更新的.htaccess文件
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?firstaddondomain\.org$ [NC]
RewriteRule ^ https://www.firstaddondomain.org%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?maindomain\.com$ [NC]
RewriteRule ^ https://www.maindomain.com%{REQUEST_URI} [R=302,L,NE]
答案 0 :(得分:4)
$1
您可以使用:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(maindomain|firstaddondomain)\.com$ [NC]
RewriteRule ^ https://www.%1.com%{REQUEST_URI} [R=302,L,NE]
确保此规则是您的第一条规则,并放在两个域的DocumentRoot/.htaccess
中。
答案 1 :(得分:0)
可能会因您的托管条件而有所不同,但在Godaddy共享托管环境&没有通配符SSL,即单个域SSL证书。这是唯一一个设法从强制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]