@victafonenko

Nginx как сделать нормальное перенаправление с .html на адрес без расширения?

Недавно перешел на Ngnix, с помощью вот этой штуки docs.rtcamp.com/easyengine/.
Все радует, вордпрессы влет ставятся и быстро работают.

Однако с обычным статичным html сайтом есть проблемы.
Структура у него такова:
Каталог
Каталог
index.html
page1.html
page2.html
page3.html
Если на Аpache (предварительно настроил в .htaccess редиректы с www, и .html стало вообще замечательно) все работает правильно - при переходе по site.ru/page1 открывается страничка на сервере page1.html и все в таком духе,

то на Ngnix открывается только главная сайта, site.ru (страничка index.html), по адресам site.ru/page1 ( или site.ru/page1/ - со слешем) выскакивает ошибка "404 Not Found". Страницы открываются только напрямую с расширениями, к примеру site.ru/page1.html .

Вопрос - как и каким образом настроить редиректы в веб сервере Ngnix в моем случае, чтобы работало все правильно?
  • Вопрос задан
  • 867 просмотров
Пригласить эксперта
Ответы на вопрос 1
ilyachase
@ilyachase
web-developer
Попробуйте это:
location / {
  # do nothing it the extension is already present
  if ($request_filename ~* ^.+.html$) {
    break;
  }
  # add .html if it was not present
  if (-e $request_filename.html) {
    rewrite ^/(.*)$ /$1.html permanent;
    break;
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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