Апач 2.4 - запрос превысил лимит 10 внутренних редиректов из-за вероятной ошибки конфигурации
Я запускаю Apache 2.4 (64bit) и PHP 5.4.15 на Windows Server 2008 R2 Enterprise и заметил следующую ошибку в журнале ошибок Apache:
AH00124: 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.
у меня есть многосайтовая установка WordPress, и я думаю, что ошибка происходит от ошибки в перезаписи htaccess.
глядя на этот пост: запрос превысил лимит 10 внутренних редиректов из-за вероятной ошибки конфигурации.?
они предлагают заменить это:
# BEGIN Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
С этот кусок кода, любезно Скотт Ян:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php/ [L,QSA]
</IfModule>
однако мой WordPress htaccess выглядит немного иначе, поэтому я не просто хочу заменить свой код на случай, если я случайно заменю то, что мне нужно.
вот мой htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
Header set Access-Control-Allow-Origin "*"
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) [L]
RewriteRule ^(.*.php)$ [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
может ли кто-нибудь предложить, что мне нужно изменить?
3 ответов
вы получаете в цикл скорее всего из-за этих правил:
RewriteRule ^(.*\.php)$ [L]
RewriteRule ^(wp-(content|admin|includes).*) [L]
просто прокомментируйте это и повторите попытку в новом браузере.
эта проблема может быть вызвана запросы на определенные файлы, которые не существуют. Например, запросы на файлы в wp-content/ uploads/, где файл не существует.
Если это ситуация, которую вы видите ,вы можете решить проблему, перейдя.htaccess и изменение этой строки:
RewriteRule ^(wp-(content|admin|includes).*) [L]
в:
RewriteRule ^(wp-(content|admin|includes).*) - [L]
основная проблема заключается в том, что правило выше запускает перезапись на тот же url с косой чертой спереди и потому, что была перезапись, недавно переписанный запрос снова проходит через правила, и запускается то же самое правило. Изменив эту строку "$1 "на" -", перезапись не происходит, и поэтому процесс перезаписи не начинается снова с того же URL-адреса.
возможно, что есть разница в том, как apache 2.2 и 2.4 справляются с этой ситуацией только-разница-это-Слэш-в-фронт, и именно поэтому правила по умолчанию, предоставляемые WordPress, не работают отлично.
решил это, добавив следующее
RewriteCond %{ENV:REDIRECT_STATUS} 200 [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]