Я пытаюсь удалить «.php» на моем сайте. Я изменил файл .htaccess, основываясь на документации, представленной в вики Dreamhost, следующим образом:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]
Тем не менее, это не работает на сайте. Например, этот код не работает:
<a href ="about">link</a>
Это показывает следующую ошибку:
не обнаружена
Запрашиваемый URL /jimmyvosler.com/public/about.php не найден на этом сервере.
Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 404 Not Found.
Это работает (но все равно отображает .php в конце, что я и пытаюсь исправить):
<a href ="about.php">link</a>
Я не понимаю, что является причиной этого, тем более, что ошибка даже указывает на правильное место. Есть ли настройка, которую мне нужно проверить в моем инструменте администратора?
Попробуй это:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Вот решение для всех, у кого есть такая же проблема. Я добавил это в мой файл .htaccess. Это решение получило поддержку Dreamhost и было связано с этим сайтом: http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Попробуй это:
Options All -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L]