Nikolino
@Nikolino

Как настроить реврайты на файлы без расширений?

Всем привет. Подскажите пожалуйста по реврайтам.

В общем сайт простой на html. Но не хочу, чтобы было видно расширение .html

То есть я хочу чтоб при заходе на URL domain.ru/contacts
показывалось содержание файла domain.ru/contacts.html

Вот как это выглядит

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1.html [NC,L]

Но есть проблема:
При запросе несуществующей страницы, например domain.ru/contacts123 , сервер пытается найти domain.ru/contacts123.html, но такого файла нет на сервере, поэтому он снова пытается найти .html, в итоге получается циклическая переадресация и сервер отдаёт ошибку 500, вместо положенного 404ответа.

Так как же настроить реврайты таким образом, чтобы были красивые URL вида domain.ru/contacts (именно без слеша на конце), но при этом при запросе несуществующей страницы, получать код ответа 404?

А то Яндекс-Вебмастеру не нравится, что несуществующие страницы отдают 500 ответ, вместо 404.
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{REQUEST_URI} !^.+\.(html|htm)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+[^/])$ /$1.html [NC,L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы