Re: nginx регулярка
Валентин Бартенев
ne at vbart.ru
Wed Jul 18 16:55:54 UTC 2012
On Wednesday 18 July 2012 20:17:56 X-Thief wrote:
[...]
> Если qwe=1234 я могу поймать так:
> if ($args ~* "qwe=[0-9]") {
> тут что-то;
> }
> то два параметра у меня уже не
> получается сделать.
Это не правильно. Правильно:
if ($arg_qwe ~ "^\d+$") {
...
}
> Вот что я пытаюсь:
>
> if ($args ~* "test=test2&qwe=[0-9]") {
> тут что-то;
> }
>
> То "тут что-то;" не работает
>
> Как правильно составить выражение с
> двумя гет параметрами?
if ($arg_qwe ~ "^\d+$") {
set $test 1;
}
if ($arg_test = test2) {
set $test "1$test";
}
if ($test = 11) {
...
}
Но если непременно хочется сделать одной регуляркой, то:
if ($args ~* "(?=.*(?:^|&)qwe=\d+(?:$|&))(?=.*(?:^|&)test=test2(?:$|&))") {
...
}
--
Валентин
Подробная информация о списке рассылки nginx-ru