Dr_Death
@Dr_Death

Mod_rewrite и file not exist?

В error.log периодически валятся записи например такого вида:
File does not exist: /*server_path*/*domain*/tags, referer: http://*domain*/tags/*tag*/



Валятся пачками за пару секунд с одного адреса. В .htaccess mod_rewrite написан и работает коректно
RewriteRule ^tags$ /$0/ [L,R=301]
RewriteRule ^tags/$ /tags.php [L]


Т.е. руками все прекрасно работает http://*domain*/tags -> http://*domain*/tags/


Непонятно как оно пробивается через rewrite, а судя по сериям за одну секунду явно не «ручной» запрос. Как будто какие то хитрые запросы, которые пролетают мимо rewrite и ищут папку напрямую. Самостоятельно повторить не удается.
  • Вопрос задан
  • 4401 просмотр
Пригласить эксперта
Ответы на вопрос 3
rasstroen
@rasstroen
А без модификатора L в первом RewriteRule сработает? По идее L останавливает обработку правил, а вам второе нужно сразу
Ответ написан
rasstroen
@rasstroen
Может быть, некоторые url не подпадают под правила, можно потестировать конфиг тут martinmelin.se/rewrite-rule-tester/, вводя эти самые referer, и посмотреть, нет ли среди них того, для которого не выполнится ни одно правило
Ответ написан
@elgordo
Хочу добавить, что у меня однажды был случай, когда я 3 часа потратил на проблему с mod_rewrite: правило не срабатывало, а потом оказалось, что выше него было другое правило, которое срабатывало раньше. Даже ради этого скачал тестер регулярных выражений. Т.е. я искал ошибку не там. :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы