【问题标题】:Apache Error - AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration errorApache 错误 - AH00124:由于可能的配置错误,请求超出了 10 个内部重定向的限制
【发布时间】:2018-08-21 06:34:07
【问题描述】:

我检查了我的 Apache 错误日志,发现以下错误:

[2018 年 3 月 13 日星期二 05:04:47.855612] [core:error] [pid 18177] [client xxx.xxx.xxx.xxx] AH00124: 请求超出内部 10 个限制 由于可能的配置错误而重定向。采用 'LimitInternalRecursion' 必要时增加限制。采用 'LogLevel debug' 获取回溯。

这是我的.htaccess 文件的副本:

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

<IfModule mod_headers.c>
<FilesMatch ".(js|css|xml|gz|html)$">
Header append Vary: Accept-Encoding
</FilesMatch>
</IfModule>

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress

Apache 2.4.27

PHP 7.0.27

谁能建议我需要改变什么?

【问题讨论】:

  • 阅读您的信息:Use 'LogLevel debug' to get a backtrace。这样做,查看日志,如果仍然不清楚,请在问题中发布调试信息。
  • 有关专业服务器或网络相关基础设施管理的问题对于 Stack Overflow 来说是无关紧要的,除非它们直接涉及编程或编程工具。您可以通过Server Fault 获得帮助。

标签: wordpress apache .htaccess


【解决方案1】:

你的问题是由这行引起的:

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]

所以,像这样在^([_0-9a-zA-Z-]+/)(wp-(content|admin|includes).*) 之间取出这个?

RewriteRule ^([_0-9a-zA-Z-]+/)(wp-(content|admin|includes).*) $2 [L]

因为,a?c 将匹配 aca,如果 URI 以 wp-admin 开头,它将匹配两个规则,首先是 RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L],然后是这就是发生错误的原因。

注意:清除浏览器缓存然后测试。

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,但原因不同。我用add_rewrite_rule() 添加了一个错误的重写规则。保存新的永久链接结构后,这一行被添加到.htaccess

    RewriteRule ^ / [QSA,L]

    这破坏了网站,即使在注释掉我的错误代码之后,WP 也不会加载,以便我重建新的永久链接结构。我尝试使用 wp CLI 工具 wp rewrite flush --hard,但要使其正常工作,我需要在我的 WP 项目文件夹(其中包含 wp-config.php 的文件夹)中有一个 wp-cli.local.yml 文件,其中包含以下内容:

    apache_modules:
        - mod_rewrite
    

    然后我可以进行重写刷新并返回到我的站点。在这种情况下,检查 apache2 错误日志对我没有帮助 - 但 YMMV。

    如果我知道这一切,我本可以从 .htaccess 中删除违规行,但由于我不太了解 RewriteRules 文件,所以我不知道它有问题。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 2017-09-23
      • 2014-05-10
      • 2012-05-03
      • 2010-12-09
      • 1970-01-01
      相关资源
      最近更新 更多