04.04.2022 в 01:03 (ред.)

Убираем .html из URL

Если вы делаете только лендинг без PHP на одних только HTML файлах, Javascript и CSS, то часто требуетя убрать расширение файлов из URL.

Самый простой способ – прописать в .htaccess несколько строчек директив.

Рекомендация первая (работает 100%, если у вас хостер Beget):

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

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

Директивы нужно добавить в самое начало файла .htaccess.

Второй вариант:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]

Как работают данные рекомендации поможет объяснить следующая картинка:

Есть еще вариант:

RewriteEngine on

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Если вы хотите удалить любое другое расширение, например, чтобы удалить расширение .php, просто замените HTML везде на PHP в приведенном выше коде.

HTML PHP

Подпишитесь на новости

Никакого спама, только новости и полезные материалы