Я использую .htaccess ниже, чтобы удалить расширение файла .html, но если кто-то вводит
example.com/test
в браузер перенаправляется на
.
Почему .html добавляется, а не удаляется?
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html
Строка, выполняющая замену:
RewriteRule ^([^/]+)/$ $1.html
что безоговорочно добавит .html
на любой запрос, в котором после имени хоста стоит только косая черта (например, http://example.com/test/
, но нет http://example.com/test1/test2/
).
Если вы хотите раздеться .html
, попробуй это:
RewriteRule (.*)\.html$ $1