【问题标题】:Redirect http://www. and http:// to https for both root and subdomain重定向 http://www.和 http:// 到 https 对于根和子域
【发布时间】:2014-07-27 22:01:34
【问题描述】:

我的 .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 文件不是我最强大的套件。有人可以启发我吗?

【问题讨论】:

  • %{HTTPS} == 'on' 表示是否正在使用 https。

标签: regex apache .htaccess mod-rewrite redirect


【解决方案1】:

这是一条规则,可让您在一个规则中执行两个重定向:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2018-09-26
    • 2014-05-08
    • 2016-01-20
    • 2015-02-16
    • 2015-02-25
    相关资源
    最近更新 更多