Как убрать расширение .html или .php в адресе страниц сайта с помощью .htaccess

Убрать расширение .html или .php в адресе страниц сайта очень просто с помощью инструкций в файле .htaccess

Вариант первый:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

При необходимости заменяем .html на .php.

В данном случае, если к странице будет обращение по ссылке, где не будет прописано расширение файла, то и страница откроется без расширения. Однако если к странице обратиться по ссылке, где разрешение файла (.html или .php) будет прописано, то страница откроется с расширением. То есть получится дубль — страница будет доступна как с расширением, так и без него. Такой вариант подходит не всегда.

Чтобы не было дублей и страница в любом случае открывалась без расширения, подойдет следующий вариант редиректа:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L,QSA]
RewriteCond %{THE_REQUEST} ([^\s]*)\.php(\?[^\s]*)?
RewriteRule (.*) %1 [R=301,L]

Здесь также не забываем заменить .php на .html при необходимости.

Поделиться с друзьями