Я только начал играть с mod_rewrite и пытаюсь перенаправить все запросы в старый html-файл, чтобы перейти к php-файлам.
Вот содержимое .htaccess:
RewriteCond $1.php -f
RewriteCond $1.html !-f
RewriteRule ^(.*).html$ $1.php
Проблема в том, что он не работает, когда я набираю URL на html-странице, я получаю 404. Ничего в журналах ошибок Apache, только 404 в журнале доступа. Следует перенаправить на php.
Теперь index.php существует, и я могу перейти к нему напрямую, а старый файл index.html не существует.
Тем не менее, если я закомментирую строку
RewriteCond $ 1.php -f
Все работает нормально, т.е. перенаправляет мои запросы index.html на index.php.
Есть идеи, почему? -F должен проверять, что «файл существует» и $ 1 должен быть «файлом», я думаю?
Кстати, у кого-нибудь есть хороший, дружественный учебник по mod_rewrite, который они бы порекомендовали?