我想强制https到根目录和特定的子域只能从每个域中删除www。
以下条件会从所有域中删除www
,并将所有域重定向到https
。我需要https
仅用于root和子域demo
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,QSA,NC,L]
答案 0 :(得分:1)
您需要在此处使用多个重写规则:
# remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
# if https is off
RewriteCond %{HTTPS} off
# a specific subdomain demo
RewriteCond %{HTTP_HOST} ^demo\.domain\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# if https is off
RewriteCond %{HTTPS} off
# main domain
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
答案 1 :(得分:0)
现在看着我的规则说明了...... 如果http_host有www。 重写为没有www和https。
我认为您需要将规则分解为类似的规则。 如果http_host有www。 删除www 如果request_uri是根 添加https。
我认为你很接近,但我认为你需要多个规则而不仅仅是一个条件。