【问题标题】:Error "request exceeded the limit of 10 internal redirects" in UbuntuUbuntu 中的错误“请求超出 10 个内部重定向的限制”
【发布时间】:2014-04-21 10:15:24
【问题描述】:

我刚刚设置了一个新的 VPS,在尝试处理用户上传的大于 3MB 左右的图像时,我收到了这个奇怪的错误。日志中没有任何内容,除了:

请求超出了 10 个内部重定向的限制

所以我开始四处挖掘,并将我能找到的所有内容添加到我的 Htaccess 中,但没有运气。也许这与我的新 VPS 配置有关?我是服务器管理的新手,所以也许我错过了一个模块或什么?也许我必须使内部重定向更大?

我已经使用 VESTA 面板设置了我的 LAMP 堆栈,该面板安装了支持 ngnix 的 apache2 服务器。

这是我的 .htaccess 文件:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ ./wedding.php?w=$1


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

谢谢!节日快乐:)

【问题讨论】:

  • 您很可能导致重定向到一个 URL,该 URL 也将在一个永久循环中重定向。这是否发生在所有 URL 上?你在使用 WordPress 吗?您是否在BEGIN...END 之外添加了Rewrite 指令?
  • 它发生在我的上传 php 脚本上,这是一个标准上传,它卡在函数上:if( is_uploaded_file($_FILES['image']['tmp_name']) )。没有 PHP 错误,只有限制错误。我在同一个目录上使用我的 wordpress 和一个网络应用程序,除了这个上传脚本外,两者都运行良好。它适用于最大约 3MB 的文件,之后我收到此错误。
  • 您是否添加了wedding.php 重写指令?它有什么作用?
  • hlafer,我不认为对 wordpress 的编辑是正确的,有错误的文件不是 wordpress 的一部分,它是我的 php 脚本。此外,我在将其传递给 wordpress 重写之前处理重写。它可以在我以前的服务器上运行,我认为这是 apache 配置中的东西,或者可能是我的 VPS 中缺少的模块
  • 天哪,我发现了问题:php.ini -&gt; upload_max_filesize = 2Mhehehehe 愚蠢的只烧了 3 天。无论如何,谢谢你的时间!! :)

标签: wordpress apache .htaccess mod-rewrite


【解决方案1】:
RewriteCond %{ENV:REDIRECT_STATUS} ^$

在 .htaccess 中通过检查内部变量 REDIRECT_STATUS 来防止无限循环。某处存在无限循环,或者重定向循环可能会大大降低您的网页速度。我建议你评论这一行,看看会发生什么。如果重定向循环是无限的,它将在浏览器中出错。如果没有,页面将加载,但会花费大量时间。

另外我建议启用重写日志。在 apache 配置文件的 vhost 条目中添加以下内容,然后重新加载服务器将启用重写日志。这可以提供线索,哪个重写日志给您带来麻烦。

    RewriteLog "logs\rewritelog.txt"
    RewriteLogLevel 3

【讨论】:

  • 我试过了,这实际上是一个我发现不起作用的修复程序,脚本之前没有这一行并且行为相同。 ://
  • 当您在 .htaccess 中评论此行时,您的浏览器状态如何?您的浏览器是否显示检测到无限循环错误?您在父目录中还有其他 htaccess 文件吗?即使是位于“/”中的 htaccess 文件本身也可以改变预期的结果。
  • 一模一样:Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
  • 浏览器返回错误,我已将其设置为在此换行符时返回给用户:if( is_uploaded_file($_FILES['image']['tmp_name']) )。 .htaccess 仅在主文件夹中
  • 天哪,我发现了问题:php.ini -&gt; upload_max_filesize = 2Mhehehehe 愚蠢的只烧了 3 天。无论如何,谢谢你的时间!! :)
【解决方案2】:

问题完全出在其他地方!

我的 php.ini 文件有一个:

upload_max_filesize = 2M

如果您遇到此问题,请确保这两个值符合您的需要:

Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

【讨论】:

  • 这有帮助,但我不确定它是否是完整的解决方案:这意味着如果上传的文件超过允许的大小,该错误将再次弹出。如果发生这种情况,它应该显示一个错误,大概是。
  • 是的,我在 upload.php 文件本身上处理它,如果文件超过 8MB,我会返回一个达到最大文件大小的错误。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 2019-03-08
  • 2018-03-18
  • 2013-06-07
  • 1970-01-01
  • 2017-09-23
  • 2012-05-03
相关资源
最近更新 更多