重定向http:// www。和http://到https用于root和子域

时间:2014-06-06 15:08:40

标签: regex apache .htaccess mod-rewrite redirect

我的.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.comhttps://domain.comhttp://sub.domain.comhttps://sub.domain.com的重定向。

我在网上找到了几个例子,但它们看起来并不像我想要的那样:

我知道这不是一个很难的改变,但PHP / .htaccess文件不是我最强的套件。有人可以启发我吗?

1 个答案:

答案 0 :(得分:2)

以下规则允许您在一个规则中执行两个重定向:

RewriteCond %{HTTP_HOST}::%{HTTPS} ^(?:www\.(.+?)::o(?:ff|n)|(?!www\.)(.+?)::off)$ [NC]
RewriteRule ^ https://%1%2%{REQUEST_URI} [R=302,L,NE]

它将执行以下重定向:

  1. http://domain.com => https://domain.com
  2. http://www.domain.com => https://domain.com
  3. https://www.domain.com => https://domain.com
  4. http://www.sub.domain.com => https://sub.domain.com