У меня есть проект в папке htdocs
где мой основной файл – index.php
. Я попытался несколько раз удалить расширение .php
когда файл открывается в браузере, используя файл .htaccess
со следующими строками без везения:
RewriteEngine On RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L]
Расширение остается. Это потому, что ссылка в моем браузере
file:///C:/wamp64/bin/apache/apache2.4.23/htdocs/Cipcpr/index.php
и не
localhost/...
Вы можете использовать:
Options -MultiViews RewriteEngine on # remove php RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R=301,L] # rewrite with php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.+)/?$ $1.php [L]
Если вашему проекту не требуется динамически удалять расширения, вы можете вручную установить RewriteRules
для каждого файла. Вот код для вашего index.php
RewriteEngine On RewriteRule ^index/?$ index.php [NC,L]
когда вы сейчас набираете / индексируете, он ссылается на файл /index.php.
Чтобы добавить другой файл (скажем, login.php), вы можете просто скопировать последний RewriteRule и переписать индексы.
RewriteRule ^login/?$ login.php [NC,L]
Просто добавьте файл .htaccess в корневую папку вашего сайта (например, /home/domains/domain.com/htdocs/) со следующим содержимым:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php