Простое переписывание.htaccess для удаления расширения файла не работает - выдает ошибку 404, не найденную
Я пишу на своем новом RaspberryPi. Я пытался использовать.htaccess, чтобы удалить.php из файла с именем "greet".
Я установил apache2: "sudo apt-get установить apache2
Включил модуль перезаписи с помощью: "sudo a2enmod rewrite"
Я также изменил разрешение на переопределение стандартных конфигов сайта.
Я знаю, что мой модуль перезаписи работает, потому что я попробовал следующее:
RewriteEngine On
RewriteRule ^greet.html$ greet.php
который успешно перенаправляет 192.168.0.123/greet.html в 192.168.0.123/greet.php.
Однако следующий код для удаления расширения.php, похоже, не работает для меня:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Когда я набираю http://192.168.0.123/greet в своем браузере, я не получаю файл greet.php. Вместо этого я попадаю на страницу 404 Not Found.
2 ответа
Почему вы не используете мультивьюны для этого? Если у вас нет много сложных правил переписывания, вы можете просто заставить mod_negotiation обработать эти расширения для вас. Просто нужно включить
Options +Multiviews
Вы можете попробовать свое правило таким образом.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/.]+)$ $1.php [NC,L]