У меня есть это правило, которое перенаправляет все запросы без .
в них на index.php
, и оно прекрасно работает:
# Redirect all page requests to content handler
RewriteRule ^([^.]*)$ index.php [L]
Теперь я также хотел бы запретить любые запросы, в которых исходный URL содержит .php
. Когда я добавляю другое правило, подобное этому (после первого), первое правило нарушается:
# Disallow access to PHP files
RewriteRule \.php 404.php [L]
Я думал, что добавление [L]
к первому правилу остановит выполнение второго правила, но, похоже, оно не даст никакого эффекта: вывод первого правила (т. Е. index.php
) соответствует второму правилу и всем запросам в конечном итоге в 404.php
. Что я тут не так делаю?