Задать вопрос
script88
@script88

Как заставить nginx редиректить без вставки слеша перед расширением?

Есть правило, при котором nginx редиректит все запросы вида site.ru/catalog/aloha на site.ru/catalog/aloha.html
location ~ ^/catalog/([^\.]+)$ { return http://site.ru/catalog/$1.html; }


Но правильно корректно срабатывает только когда отсутствует слеш в конце URL
  • Вопрос задан
  • 120 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Skillbox
    Старт в DevOps: системное администрирование для начинающих
    4 месяца
    Далее
  • OTUS
    Инфраструктура высоконагруженных систем
    5 месяцев
    Далее
Решения вопроса 1
dizballanze
@dizballanze
Software developer at Yandex
location ~ ^/catalog/([^\.\/]+)/?$ {
    return http://site.ru/catalog/$1.html;
}


Заменяет site.ru/catalog/aloha на site.ru/catalog/aloha.html
и site.ru/catalog/aloha/ на site.ru/catalog/aloha.html
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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