【问题标题】:.htaccess http to https redirecting too many times.htaccess http 到 https 重定向太多次
【发布时间】:2017-08-14 17:09:10
【问题描述】:

我的域名是 www.supergenscript.com。它托管在 www.easycloud.us 上,所有 DNS 都使用 CloudFlare 进行了配置。我的 .htaccess 文件中有以下代码。

RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

在我的 .htaccess 文件中除了这个之外什么都没有。这是我的 .htaccess 现在拥有的完整代码。我使用此代码的目的是自动从 http 重定向到 https。它从 http 更改为 https 但索引页面未加载。取而代之的是,浏览器继续加载,最后在花费了一些时间后,它给出了一个错误。

这是我的 Google Chrome 浏览器收到的错误

This page isn’t working

www.supergenscript.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

请帮助我找到解决此问题的方法。我真的越来越沮丧。

【问题讨论】:

    标签: php apache .htaccess redirect mod-rewrite


    【解决方案1】:

    试试这个:

    RewriteCond %{HTTP:X-Forwarded-Proto} !http
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    以上解决方案对我不起作用

    【讨论】:

    • 这行得通!我还发现这个页面解释了HTTP:X-Forwarded-Protolink 但我不明白为什么更简单的原始解决方案不起作用。是代理吗?
    【解决方案2】:

    检查这个

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    

    或者这个

    RewriteEngine on
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^ https://www.supergenscript.com%{REQUEST_URI} [NC,L]
    

    【讨论】:

    • 已经尝试过.. 相同的结果.. 实际上这是我第一次尝试的代码.. 但是当我在这里的堆栈上找到它时更改为当前的..
    • @ShubhamJha 更新了我的答案,请检查它会帮助你:)
    • 实际上 easycloud 使用 CloudFlare 来管理 DNS,他们提供了一个我不知道的“始终使用 HTTPS”选项。才知道的。我的错。我只需要启用该选项并且它现在就可以工作了。但无论如何感谢您的帮助。而且由于您的回答将帮助那些仅在不使用 cloudflare 等服务的情况下运行自定义网站的人,因此我将接受并支持它。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2018-12-15
    • 2016-07-06
    • 2018-06-21
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多