Как исправить бесконечный цикл в этом правиле mod_rewrite? - PullRequest
1 голос
/ 24 марта 2012

У меня есть следующее в .htaccess. Файл:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/css(/?|/.+)$
RewriteCond %{REQUEST_URI} !^/js(/?|/.+)$
RewriteCond %{REQUEST_URI} !^/img(/?|/.+)$
RewriteRule !^/handle\.php$ /handle.php [L]

Я просто хочу, чтобы все запросы (кроме тех, которые начинаются с /css/, /js/ и /img/) были отправлены на handle.php.

Но когда я делаю запрос, я получаю ошибку 500, и это напечатано в журнале ошибок:

[Sat Mar 24 16:14:53 2012] [error] [client x.x.x.x] 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.

Почему он входит в бесконечный цикл?

1 Ответ

1 голос
/ 24 марта 2012

Вероятно, переписывание запроса в /handle.php не соответствует !^/handle\.php$, поэтому он пытается переписать перезапись и т. Д. Ваша проблема может быть главной косой чертой?Попробуйте поиграться с этим.

Если нет, посмотрите директиву RewriteLog (и смотрите запись чуть ниже, RewriteLogLevel).Вы сможете увидеть, какие попытки переписывания предпринимаются, и, вероятно, сможете выяснить, что происходит не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...