【问题标题】:HTTPS redirect is not workingHTTPS 重定向不起作用
【发布时间】:2015-03-05 01:32:59
【问题描述】:

这是我的 conf 文件中的内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^test\.old\.com$ [NC]
RewriteCond %{HTTPS} on
RewriteRule ^(.*)$ https://test-new.com$1 [QSA,R=301,L]

RewriteCond %{HTTP_HOST} ^test\.old\.com$ [NC]
RewriteRule ^(.*)$ http://test-new.com$1 [QSA,R=301,L]

当我转到test.old.com 时它会重定向,但当我尝试https://test.old.com 时不会发生重定向

如何将 https 请求重定向到 URL 中带有 https 的新域?

【问题讨论】:

    标签: apache mod-rewrite redirect ssl https


    【解决方案1】:

    无论使用 http 还是 https,您都只需要一个重定向规则即可转到您的新域。如果你想在新域中使用 https 从旧重定向到新域,你可以使用它。

    RewriteCond %{HTTP_HOST} ^test\.old\.com$ [NC]
    RewriteRule ^(.*)$ https://test-new.com/$1 [QSA,R=301,L]
    

    如果您想要一对一规则并将 http 重定向到 http 并将 https 重定向到 https,那么您可以这样做。

    RewriteCond %{HTTP_HOST} ^test\.old\.com$ [NC]
    RewriteCond %{HTTPS} ^on
    RewriteRule ^(.*)$ https://test-new.com/$1 [QSA,R=301,L]
    RewriteCond %{HTTP_HOST} ^test\.old\.com$ [NC]
    RewriteCond %{HTTPS} !^on
    RewriteRule ^(.*)$ http://test-new.com/$1 [QSA,R=301,L]
    

    这表明您仍然拥有旧域的有效证书。如果您不这样做,它将适用于 https 并且仅适用于 http。您将收到一个证书警告,并且在您克服该错误之前不会发生重定向。

    【讨论】:

      猜你喜欢
      • 2014-11-07
      • 2014-03-10
      • 2018-06-11
      • 2015-07-28
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多