我的.htaccess中有以下规则:
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^.*$ https://%1/$1 [R=301,L]
这会导致http://www.domain.com
等域名重定向到https://domain.com
以及http://www.sub.domain.com
重定向到https://sub.domain.com
。
我想扩展此规则,以包括从http://domain.com
到https://domain.com
和http://sub.domain.com
到https://sub.domain.com
的重定向。
我在网上找到了几个例子,但它们看起来并不像我想要的那样:
How to redirect http to https and https://www to https://此示例似乎是硬编码域而不支持子域?
Redirect all http AND https non-www URLS to https://www.xyz.com via htaccess这很接近,但是不会改变正则表达式。
我知道这不是一个很难的改变,但PHP / .htaccess文件不是我最强的套件。有人可以启发我吗?
答案 0 :(得分:2)
以下规则允许您在一个规则中执行两个重定向:
RewriteCond %{HTTP_HOST}::%{HTTPS} ^(?:www\.(.+?)::o(?:ff|n)|(?!www\.)(.+?)::off)$ [NC]
RewriteRule ^ https://%1%2%{REQUEST_URI} [R=302,L,NE]
它将执行以下重定向:
http://domain.com => https://domain.com
http://www.domain.com => https://domain.com
https://www.domain.com => https://domain.com
http://www.sub.domain.com => https://sub.domain.com