Nginx переписать отправить все параметры запроса, кроме одного - PullRequest
0 голосов
/ 28 апреля 2018

Мне нужно удалить определенный параметр запроса из URI запроса, прежде чем перенаправить пользователя с domain1.com на domain2.com. Параметр запроса: migrate.

Итак, с этого URL: domain1.com/check?migrate=true&uuid=1821

Я хочу отвести пользователя по этому URL: domain2.com/check?uuid=1821

Может быть гораздо больше параметров запроса, и я хочу сохранить их все, кроме migrate

1 Ответ

0 голосов
/ 28 апреля 2018

Вам потребуется применить регулярное выражение к переменной, которая содержит всю строку запроса - так что $request_uri или $args являются возможными кандидатами.

Чтобы перенаправить только /check, вы можете использовать:

location = /check {
    if ($args ~* ^(.*&)?migrate=[^&]*(&(.*))?$)
        return 301 http://domain2.com$uri?$1$3;
    }
    return 301 http://domain2.com$uri?$args;
}

См. это предупреждение по использованию if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...