November 04, 2016 10:15AM
У меня довольно странный вопрос, не могу что-то нагуглить похожую проблему.
Если мне надо организовать обычный редирект с одного урла на другой в котором просто категории или human-readable линк я поступаю так:
rewrite ^(/56184-example-link-to-redirect-79e3100/)$ /target/link permanent;

Но в последнее время владелец ecommerce хочет делать редиректы типа:

rewrite ^(/example-category?collection=collection-name&filter=filter-var1)$ /target/link permanent;

причем после знака ? идёт иногда один параметр или два как в примере выше, а иногда гораздо больше. Я прекрасно понимаю и транслирую владельцу сервиса, что параметры могут меняться местами. Ему пофиг, поскольку где-то в гугле закешировалось и фигурирует в таком виде. Соответственно надо заставить нгинкс распознавать весь урл как одно целое. К сожалению для nginx всё что идет после знака ? это массив с аргументами и на каждый такой массив надо было бы клепать костыли с кучей if-ов с учётом каждого параметра по отдельности. С учётом того, что подобных редиректов мне приходит список на пару сотен - сделать что-то подобное руками - нереально. Парсить и генерить конфигурацию с частоколом if-ов тоже не айс. Что делать, граждане дорогие? Можно как-то сломать поведение нгинкса, чтобы он без лишнего анализа и разбора параметров в $ARG сделал то что я хочу?
Subject Author Posted

Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

sysadm November 04, 2016 10:15AM

Re: Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

Gena Makhomed November 04, 2016 01:00PM

Re: Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

sysadm November 05, 2016 02:43AM

Re: Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

Gena Makhomed November 05, 2016 04:22AM

Re: Редирект на необходимый урл в том случае если запрос включает параметры и соответствует паттерну

Иван November 05, 2016 05:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 204
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready