.htaccess mod переписать 500 внутренних ошибок сервера из-за слишком большого количества внутренних перенаправлений с LimitInternalRecursion
Всякий раз, когда я размещаю свой файл.htaccess в своем веб-каталоге, я получаю 500 внутренних ошибок сервера и в файле error.log с указанием:
[Sat Jan 21 13:46:07 2012] [error] [client xx.xx.xxx.xx] 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.
Мой файл .htaccess:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteRule ^(.*) index.php
Я пытался включить Опции +Ссылки на следующие ссылки, но это было бесполезно.
Все работает локально. Есть какие-нибудь указания на то, что я могу делать неправильно?
2
Author: Stephen Ostermiller, 2012-01-21
3 answers
Измените свой код следующим образом:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
1
Author: anubhava, 2012-01-21 13:22:15
Вам также необходимо исключить перенаправляемую цель:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$
RewriteCond $1 !=index.php
RewriteRule ^(.*) index.php
0
Author: Gumbo, 2012-01-21 13:25:26
Попробуйте выполнить следующие действия, чтобы предотвратить внутренние перенаправления
RewriteEngine On
#removed %{DOCUMENT_ROOT} as it is unnecessary
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp|\.css|\.js)$ [NC]
#Prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(.*) index.php [L]