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

Небольшие заметки из личного (и не только) опыта, рекомендации
Ответить
Аватара пользователя
Raven
Бородатый сис
Бородатый сис
Сообщения: 2800
Зарегистрирован: 03 мар 2010, 15:12
ОС: RHEL 8
Откуда: Из серверной

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

Сообщение Raven » 13 янв 2016, 16:37

Как-то понадобилось настрогать на 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;
    }
Я не злопамятный, я просто часто ковыряю логи
Ответить

Вернуться в «Полезные советы»