发现 http 到 https 的双重重定向

Posted

技术标签:

【中文标题】发现 http 到 https 的双重重定向【英文标题】:http to https double redirection found 【发布时间】:2018-06-04 09:24:06 【问题描述】:

我正在尝试使用三个选项将 http 重定向到 https

http://转https:// http://www 转 https:// https://www 转 https://

但是,第二个选项显示来自http://www > https://www > https:// 的双重重定向

以下是我在 .htaccess 中的代码。双重重定向可以吗?

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %HTTPS off
   RewriteRule ^(.*)$ https://%HTTP_HOST%REQUEST_URI [L,R=301]
   RewriteCond %HTTP_HOST ^www\.(.+)$ [NC]
   RewriteRule ^ https://%1%REQUEST_URI [R=301,L]
</IfModule>

【问题讨论】:

【参考方案1】:

因为您有 2 个重定向规则。重定向可能发生两次:

    使用第一条规则http://www.example.comhttps://www.example.com 使用第二条规则https://www.example.comhttps://example.com

您可以使用这个单一规则在一个 301 重定向中同时执行这两个操作:

RewriteCond %HTTP_HOST ^www\. [NC,OR]
RewriteCond %HTTPS !on
RewriteCond %HTTP_HOST ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%REQUEST_URI [R=301,L,NE]

确保将两条规则都替换为这条规则,并使用新浏览器进行测试以避免旧浏览器缓存。

【讨论】:

非常感谢,阿努巴瓦!那很棘手!事实上托管公司告诉我不要相信第三方应用程序:) 托管公司讲各种各样的故事,因为他们并不真正了解这些事情:) 感谢您的快速帮助,朋友!再次感谢!

以上是关于发现 http 到 https 的双重重定向的主要内容,如果未能解决你的问题,请参考以下文章

IIS 将 www 重定向到非 www 和 http 到 https:是不是可以仅使用一个重定向来完成?

Jersey jax.rs 客户端 2.5 遵循从 HTTP 到 HTTPS 的重定向

IIS 7 上的条件 https 重定向

将 HTTP 重定向到 HTTPS(中间件重定向 vs Nginx)

NGINX 将 http 重定向到 https,将非 www 重定向到 ww

如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点