gpt4 book ai didi

apache - .htaccess 错误 - ERR_TOO_MANY_REDIRECTS

转载 作者:行者123 更新时间:2023-12-03 18:38:13 25 4
gpt4 key购买 nike

我有这个 .htaccess 文件要重定向 http://https://
我也做了 www.到根域重定向!
www.到根域作品!然而 https://重定向没有!
如果我设置 RewriteCond %{HTTPS} onRewriteCond %{HTTPS} offRewriteCond %{HTTPS} =!on我收到浏览器错误:

The example.com page isn’t working

mysite.com redirected you too many times.

Try clearing your cookies.

ERR_TOO_MANY_REDIRECTS



我所做的一次编辑给了我 500 错误,但我将其恢复为以前的状态!我所做的只是改变: RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}RewriteRule(.*) https://%{HTTP_HOST}%{REQUEST_URI}RewriteRule (.*)https://%{HTTP_HOST}%{REQUEST_URI}
任何人都对如何解决此问题有任何想法?

这是我的全部 .htaccess文件!
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://antimalwareprogram.co%{REQUEST_URI} [R=301,L,NE]
</IfModule>

最佳答案

RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


是的,这将创建一个重定向循环。逻辑是错误的。这说的是......如果HTTPS“开启”,则重定向到HTTPS。您应该检查 HTTPS 是否“关闭”(或“未打开”,即 !on )。

(通过删除参数之间的空格,您可能会创建一个重写循环,因此会出现 500 错误。空格是 Apache 配置文件中的分隔符。)

请尝试以下操作:
RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L,NE]

这可以处理 HTTPS 和 www 规范重定向。你不需要第一条规则。您不需要 <IfModule>容器。

更改 302301只有当你确定它工作正常时。

确保在测试前已清除浏览器缓存。 301 会被浏览器硬缓存。

更新:如果这仍然给您相同的错误(重定向循环),那么您的 SSL 可能由前端代理管理,而不是您的应用程序服务器。如果是这种情况,那么您将无法使用 HTTPS服务器变量。请参阅以下相关问题:
  • http to https redirection through htaccess: incorrect redirection error
  • htaccess rewrite - too many redirects


  • 似乎在这种情况下, ENV:HTTPS (一个环境变量)需要用来代替 HTTPS (Apache 服务器变量)。但是请注意,这是非标准/特定于服务器的,因为这意味着正在使用前端代理来管理 SSL。

    关于apache - .htaccess 错误 - ERR_TOO_MANY_REDIRECTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46084919/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com