【问题标题】:forcing HTTPS with .htaccess resulting in redirect loop使用 .htaccess 强制 HTTPS 导致重定向循环
【发布时间】:2014-09-29 09:18:05
【问题描述】:

我正试图强制所有访问我的页面的用户通过 https 访问它。我用谷歌搜索了很多,发现了很多(大部分相同).htaccess 解决方案,但在所有这些解决方案中,我在 chrome 和 Firefox 中都得到了“这个网页有一个重定向循环重新加载”。

这是我目前在 .htaccess 文件中的内容。

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

link 到网站。

谁能告诉我可能是什么问题,因为我不知道。

谢谢

【问题讨论】:

    标签: .htaccess mod-rewrite redirect ssl https


    【解决方案1】:

    试试这个规则:

    RewriteEngine On
    
    RewriteCond %{HTTPS} off
    RewriteCond %{SERVER_PORT} =80
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,NE,L]
    

    只要确保这是您的 .htaccess 文件中的第一条规则。

    【讨论】:

    • 谢谢,但我仍然遇到同样的错误。 .htaccess 文件中没有其他内容,所以我确定它是第一条规则。是否有任何 apache 设置可能会阻止它执行?
    • 看起来您使用的是 nginx 而不是 Apache。我不知道这个确切的规则语法是否也适用于nginx。
    • 还要验证您的.htaccess 是否已启用,方法是在您的.htaccess 上放置相同的垃圾(随机)文本,看看它是否会产生500(内部服务器)错误?
    • 在.htaccess 中放入一些垃圾时,我确实收到了内部服务器错误。我以前使用过它,所以它应该可以工作。就是这个改写不想合作
    • 好的,如果你注释掉这条规则,这个重定向循环会消失吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2018-10-19
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多