Убрать расширение .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 при необходимости.