Блок локации Nginx с if, но где еще? - PullRequest
0 голосов
/ 17 октября 2019

Необходимо перенаправить URL с переменной на другое доменное имя. Следующий код работает, когда он совпадает, но не работает, когда он не совпадает.

Например, он работает, когда запрос https://old.example.com/test/place?id=2

Сбой, когда запрос для https://old.example.com/test/place?id=1

Нужно https://old.example.com/test/place?id=1, чтобы просто пройти и поймать только id = 2.

Чего не хватает в конфигурации? Что я пропустил?

    location = /test/place {
            if ($request_uri ~ ^/test/place\?id=2) {
                    return 301 https://new.example.com/test/place?id=2;
            }
    }

1 Ответ

0 голосов
/ 18 октября 2019

Нашел решение с помощью члена списка рассылки nginx, Патрика. Вот ссылка на разговор.

Ссылка списка рассылки на решение

Окончательное решение выглядит следующим образом.

        if ( $request_uri = "/test/place?id=2" ) {
            rewrite ^ https://new.example.com${uri}?${args}? last;
    }
...