Как сделать редиректы на nginx по концу урла?

Приветствую!
Есть пачка урлов (больше 200 штук, у которых меняются цифры в конце) с параметрами, пример:
site.ru/index.php?route=product/category&path=90_128
Необходимо сделать редирект 301 на другой сайт (склейка, страницы цели имеют другие адреса).
Из-за знака вопроса условия не проходят.
Хотел сделать через location, по концу урла (path=90_128) - так тоже не срабатывает.
Как для такого url сделать условия под location?
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mezhuev
Системный администратор
И не будет срабатывать, так как location использует URI в нормализованном виде и без аргументов. С rewrite аналогичная ситуация. Простой вариант решения проблемы:
location /index.php {
    if ($arg_path ~ "^[0-9]{2}_[0-9]{3}$") {
        return 301 https://example.com/;
    }
}

Регулярку следует подправить под реальное положение дел. И помните, If Is Evil! Правильнее было бы реализовать через ngx_http_map_module, но не видя всей картины сложно советовать.
Ответ написан
Ваш ответ на вопрос

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

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