script88
@script88

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

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


Но правильно корректно срабатывает только когда отсутствует слеш в конце URL
  • Вопрос задан
  • 118 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы