Как убрать .html в URL?
RewriteEngine on

RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP

RewriteRule ^([^.]+)\.html$ http://www.gral.ru/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !(\.[^./]+)$

RewriteCond %{REQUEST_fileNAME} !-d

RewriteCond %{REQUEST_fileNAME} !-f

RewriteRule (.*) /$1.html [L]
Копипасьте сразу в htaccess
Здравствуйте. Если у Вас используеться Apache, то в файле .htaccess пропишите следующее:
RewriteEngine On
RewriteCond %{REQUEST_URI} ! \.html$
RewriteCond %{REQUEST_URI} ! /$
RewriteRule ^(.*)$ $1.html
Это приведет URL к виду без .html в конце. 
Если используется nginx:
То в конфигурационном файле, в блоке location /
укажите следующее:
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
try_files $uri/index.html $uri.html $uri/ $uri =404;		
Так же на настройки правил реврайта может влиять ваша CMS, нужно также это учитывать.