Nginx перенаправить несколько строк запроса URL

Я хочу перенаправить URL-адрес в другую папку на том же веб-сайте. Каждый URL имеет строку запроса, поэтому простой возврат 301 не работает.

Пример перенаправления хочу.

example.com/th/?n=abc 301 to example.com/thh/?n=abc
example.com/th/?n=xyz 301 to example.com/thh/?n=xyz

После поиска решения я нашел решение, которое работает только для первого URL.

 location ~ /th/ {
    if ($args ~* "^n=abc") {
        set $mid $1;
        rewrite ^.*$ https://example.org/thh/$mid permanent;
    }
   }

Но если я создаю то же правило для строки запроса XYZ, правило перенаправления работает.

location ~ /th/ {
        if ($args ~* "^n=xyz") {
            set $mid $1;
            rewrite ^.*$ https://example.org/thh/$mid permanent;
        }
       }

Второе правило не работает, только первое работает. Я думал, что может быть середина вар перезаписывается по первому правилу. Я поменял вар на банку, но она не работает.

Может кто-нибудь, пожалуйста, помогите найти решение для этого. Я не хочу перенаправлять всю папку в thh.

0 ответов

Другие вопросы по тегам