【问题标题】:Solution to ERR_TOO_MANY_REDIRECTS errorERR_TOO_MANY_REDIRECTS 错误的解决方案
【发布时间】:2014-08-19 20:31:23
【问题描述】:

我已经彻底搜索了 stackoverflow,但找不到任何解决我收到的此错误的方法。

信息:

  1. 我仅在 .htaccess 中使用重定向,并且我的网页中没有有效的 html 重定向。
  2. 我正在使用.htaccessdefault.php 重定向到rootnon-wwwwwwerror page 404.phpcache controlgzip 文件。 (我的 htaccess 内容如下)。

错误:

  1. 我输入了错误的 URL 来测试 404 redirect 并收到了显示 ERR_TOO_MANY_REDIRECTS。我尝试清除浏览器缓存,还研究了 stackoverflow 以调试我的 htaccess 代码,但目前还没有解决方案。

需要帮助:

  1. 我会请求 stackoverflow 成员帮助我解决这个错误,作为参考,我在下面发布了我的 htaccess 代码。

HTACCESS:

<Ifmodule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

### re-direct default.php to root / ###
RewriteCond %{THE_REQUEST} ^.*\/default\.php\ HTTP/
RewriteRule ^(.*)default\.php$ /$1 [R=301,L]

### re-direct non-www to www of main domain
RewriteCond %{http_host} ^bookkeralatourpackage\.in$ [nc]
RewriteRule ^(.*)$ http://www.bookkeralatourpackage.in/$1 [r=301,nc,L]

#### Rule for Error Page - 404 ####
ErrorDocument 404 http://bookkeralatourpackage.in/404.php
</Ifmodule>

<ifModule mod_headers.c>
Header set Connection keep-alive
ExpiresActive On

# Expires after 1 month
<filesMatch ".(gif|png|jpg|jpeg|ico|pdf|js|htm|html|txt)$">
Header set Cache-Control "max-age=2592000"
</filesMatch>

# Expires after 1 day
<filesMatch ".(css)$">
Header set Cache-Control "max-age=86400"
</filesMatch>
</ifModule>

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

让我知道我哪里出错了,以及是否需要任何其他细节来解决这个错误。

【问题讨论】:

    标签: php regex .htaccess mod-rewrite redirect


    【解决方案1】:
    • 最明显的问题是错误文档没有www。这意味着在重定向到http://bookkeralatourpackage.in/404.php 之后,必须应用www 重定向。将其更改为:

      ErrorDocument 404 http://www.bookkeralatourpackage.in/404.php
      
    • 如果404.php 文件不存在,下一个可能的问题是:您将输入重定向链。所以请检查http://www.bookkeralatourpackage.in/404.php是否存在。

    • 我不完全确定需要RewriteCond %{THE_REQUEST} ^.*\/default\.php\ HTTP/ 行。没有它,该规则可能会起作用。

    请让我们知道这是否有效。

    【讨论】:

    • 感谢您的宝贵时间。根据您的建议,我添加了 www 但弹出相同的错误。 404.php 确实存在,所以我猜可能不需要提供完整的 url(我将代码修改为 ErrorDocument 404 /404.php),现在它可以工作了(现在没有“太多重定向错误”)。唯一要注意的是子文件夹(www.bookkeralatourpackage.in/kerala-tour/xxxx.php 中的页面)中的任何错误都不会重定向到 404.php,我现在被困在这里。我已删除该行 (RewriteCond %{THE_REQUEST} ^.*\/default\.php\ HTTP/) 并测试它不起作用。再次感谢您的时间和帮助。
    • 你是天使。我刚刚检查了 404.php 文件,还根据您的指示对“RewriteCond”行进行了一些更改,现在它工作正常:) 不确定是什么导致了错误。我在下面分享最终的 htaccess 代码,希望它可以帮助像我这样的人。再次感谢您帮助我:)
    • Options +FollowSymlinks RewriteEngine on RewriteBase / ### re-direct default.php to root / ### RewriteCond %{THE_REQUEST} ^.*/default\.php RewriteRule ^(.*)default.php$ /$1 [R=301,L] ### 将非 www 重定向到主域的 www RewriteCond %{HTTP_HOST} ^bookkeralatourpackage\.in [nc] RewriteRule (.*) bookkeralatourpackage.in/$1 [r=301,L] #### #### 错误页面规则 - 404 #### ErrorDocument 404 /404.php 其余部分保持不变。
    • 我点击了答案旁边的复选标记,谢谢你指导我,我是新来的,所以你的指导确实有帮助:)
    • 谢谢,我们下次再见! :)
    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多