@gelosoft
Frontend-developer

Как в nginx настроить редирект с учетом существования файла?

Доброго времени суток!
Есть сайт sitename.ru
Есть такая структура папок/файлов относительно $root:
./test.html
./test2
./test2/index.html
./test2/b.html
Необходимо, при переходе по url
sitename.ru/test => ./test.html(если нет такого, проверяем следующий вариант)
=>./test/index.html(если есть отдаем, иначе...) => 404
sitename.ru/test2 => ./test2.html(если нет такого, проверяем следующий вариант) =>./test2/index.html(если есть отдаем, иначе...) => 404
sitename.ru/test2/b => ./test2/b.html(если нет такого, проверяем следующий вариант)
=> ./test2/b/index.html(если есть отдаем, иначе...) => 404
Как правильнее написать rewrite для таких условий, чтобы это было унифицировано, без привязки к названию директории(файлов и директорий много)?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Правильно написать try_files
location / {
    try_files $uri $uri.html $uri/index.html =404;
}


А если я наберу example.com/test/ (со слешом в конце), то что должно получится?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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