[英]Redirect from non-www to www and force SSL
我想將所有http流量都強制為https,同時也總是將www強制為。
這是我到目前為止的內容:
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^mydomain\.com
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
當網址不包含www時,這似乎可以正常工作。 因此, http://mydomain.com正確地重定向到https://www.mydomain.com 。
但是,當存在www部件時,它不能正確重定向到https。 因此,www.mydomain.com不會重定向到https://www.mydomain.com
編輯我已經用兩個重寫塊來工作了:
# Force ssl
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# redirect non-www to www
RewriteCond %{HTTP_HOST} ^mydomain\.com
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
不知道這是否可以接受,但可以
在重寫器中使用您的domain name
而不要使用HTTP_HOST
,這樣,無論www是否存在,都可以使用1條規則。 您可以有兩個重寫規則,但只能使用OR
。 我想您正在尋找的是這個。
# always redirect to www and/or https
RewriteCond %{HTTP_HOST} ^mydomain\.com [NC,OR]
RewriteCond %{HTTPS} !^on$
RewriteRule ^(.*) https://www.mydomain.com/$1 [R=301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.