Не работает REQUEST_FILENAME в htaccess. Doesn’t work REQUEST_FILENAME

Перестал срабатывать RewriteCond %{REQUEST_FILENAME} в .htaccess на одном проекте. И на этом же сервере, у другого проекта — работало.
Вот такое перенаправление:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php [L]

Проблема оказалась в двух условиях:

1. Для сервера было прописано в AllowOverride (Убрал Indexes и заработало.)

Options Indexes

2. В отличии от рабочего проекта, в каталоге не было индексного файла index.php. В нерабочем проекте шло перенаправление на server.php.
Баг или фича не понятно.

Второй вариант решения, это добавлять %{DOCUMENT_ROOT} в условия следующим образом:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^ server.php [L]

— но этот вариант решения возможно предлагался, кто не нашел причину как в первом решении.
Вот так, может кому пригодится.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>