Страница 1 из 1

nginx: Вырезаем часть аргументов

Добавлено: 13 янв 2016, 16:37
Raven
Как-то понадобилось настрогать на nginx рерайт, который бы позволял вырезать какой-нибудь из параметров запроса. Загуглил - кошмар, чего-только не советуют. Встроеный perl, lua... Ппц, в общем вот мое решение, мож кому тоже пригодится.

Код: Выделить всё

    # Вырезаем с корнем параметр lang=(ru|en|суахили и иже с ними)
    set $redir "0";
    if ($query_string ~ "(.*)(?:^|&)lang=(?:[^&]*)((?:&|$).*)"){
        set $args "$1$2";
        set $redir "1";
    }
    if ($redir = "1") {
        rewrite ^(.*)$ $1 permanent;
    }