Вы написали несколько странных ошибок в своем коде!
%{REQUEST_FILENAME}
уже содержит расширение файла, поэтому вы запрашиваете файл, который заканчивается на .php.php
, а с помощью флага -f
вы проверяете, существует ли такой файл. Кроме того, фактически нет необходимости проверять, существует ли запрошенный файл для того, что вы хотите сделать.
- Ваш RewriteRule перезапишет любой dot-php-файл по тому же URL-адресу плюс дополнительный
.php
. Так что index.php
станет index.php.php
- Зачем нужен восклицательный знак в самом начале вашего RewriteRule?
Исправляя эти ошибки, вы получаете что-то вроде:
RewriteRule (.*)\.php$ $1/
Вы можете использовать $1, $2, $...
в правой части своего выражения для доступа к n-му совпадению в скобках () слева.
Для получения дополнительной информации о mod_rewrite см. здесь . Может быть, это помогает смотреть там время от времени. ;)