>> судя по документации map можно применять только в контексте http, а хотелось бы в контексте server, а лучше location
непонятна ваша боль. значения переменных вычисляются в момент доступа к ним. к этим переменным можно обратиться и на уровне сервера и на уровне локейшена. 17 мая 2016 г., 0:49 пользователь Sergey V. Sokolov <[email protected]> написал: > Суть с map понятна, спасибо за ликбез, хорошая конструкция. Есть один > ньюанс, судя по документации map можно применять только в контексте http, а > хотелось бы в контексте server, а лучше location :( > > 16.05.2016, 17:57, "Sergey V. Sokolov" <[email protected]>: > > Мне НЕ нужна проверка по отдельным переменным $query_string, нужно > проверка сопоставления со всей строкой $query_string. > > 16.05.2016, 15:20, "Иван" <[email protected]>: > > Вы хотите анализировать именно $query_string или конкретные переменные из > нее? > > > > Для приведенного Вами примера с p= работает моя конструкция. Если надо > сравнивать p с несколькими подстроками, то будет > > > > map $arg_p $block { > > 'anyqwery$' 1; > > 'otherqwery' 1; > > 'some$otherqwery' 1; > > } > > > > if ($block) { > > return 403; > > } > > > > Если таких p не одна, а, например, есть еще q, то будет как-то так > > > > map $arg_p $pblock { > > default 0; > > 'anyqwery$' 1; > > 'otherqwery' 1; > > 'some$otherqwery' 1; > > } > > map $arg_q $qblock { > > default 0; > > '2qwery$' 1; > > 'newotherqwery' 1; > > '3some$otherqwery$' 1; > > } > > > > map $pblock$qblock $block { > > default 1; > > 00 0; > > } > > > > if ($block) { > > return 403; > > } > > > > Если же переменных p,q много, то можно сделать регэкспом по всей > $query_string: > > > > map $query_string $block { > > default 0; > > ~'p=anyqwery$' 1; #если $query_string содержит "p=anyqwery$" или > "zap=anyqwery$otherqwery", будет отлуп > > ~'otherqwery' 1; > > ~'$$$' 1; > > } > > > > if ($block) { > > return 403; > > } > > > > Прочитайте документацию на map: http://nginx.org/r/map/ru. > > > > В письме от 16 мая 2016 14:46:12 пользователь Sergey V. Sokolov написал: > > > Мне нужно для одного из location заблокировать порядка 10-20 > query_string, а > > > остальные пропустить. Так вот, query_string может содержать символ $ и > > > нужно это учесть. > > > 16.05.2016, 14:07, "Иван" <[email protected]>: > > > Мне кажется, что нет, не правильно понимаете. Опишите конкретнее, что > хотите > > > получить, пожалуйста. > > > > > > В письме от 16 мая 2016 14:05:52 пользователь Sergey V. Sokolov написал: > > > > Я правильно понимаю, что на каждую такую операцию сравнения, будет две > > > > директивы в конфиге map и if? Получается в две операции. Короче можно? > > > > 16.05.2016, 02:57, "Иван" <[email protected]>: > > > > > > > > В письме от 16 мая 2016 01:47:12 пользователь Sergey V. Sokolov > написал: > > > > > $query_string > > > > > > > > > > > > Здравствуйте! > > > > > > > > Наиболее правильно > > > > map $arg_p $block { > > > > 'anyqwery$' 1; > > > > } > > > > > > > > if ($block) { > > > > return 403; > > > > } > > > > > > > > С уважением, Иван. > > > > , > > > > _______________________________________________ > > > > nginx-ru mailing list > > > > [email protected] > > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > > > > > > > -- > > > > С уважением, Сергей Соколов > > > > Заместитель директора > > > > Zavolga.Net (ООО "Горизонт"), г. Ярославль > > > > Тел.: +7 4852 333-402 > > > > Сайт: http://zavolga.net > > > > > > > > Руководитель проекта > > > > Региональный Интернет Дневник > > > > Сайт: http://dnevnik76.ru > > > > > > > > Руководитель проекта > > > > Ярославский Internet Exchange (YAR-IX) > > > > Сайт: http://yar-ix.net > > > > > > > > nic-hdl: SVS141-RIPE > > > > X-NCC-RegID: ru.gorizont > > > > > > > > > > > > > , > > > _______________________________________________ > > > nginx-ru mailing list > > > [email protected] > > > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > > > > > > > > > -- > > > С уважением, Сергей Соколов > > > Заместитель директора > > > Zavolga.Net (ООО "Горизонт"), г. Ярославль > > > Тел.: +7 4852 333-402 > > > Сайт: http://zavolga.net > > > > > > Руководитель проекта > > > Региональный Интернет Дневник > > > Сайт: http://dnevnik76.ru > > > > > > Руководитель проекта > > > Ярославский Internet Exchange (YAR-IX) > > > Сайт: http://yar-ix.net > > > > > > nic-hdl: SVS141-RIPE > > > X-NCC-RegID: ru.gorizont > > > > > > , > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > С уважением, Сергей Соколов > Заместитель директора > Zavolga.Net (ООО "Горизонт"), г. Ярославль > Тел.: +7 4852 333-402 > Сайт: http://zavolga.net > > Руководитель проекта > Региональный Интернет Дневник > Сайт: http://dnevnik76.ru > > Руководитель проекта > Ярославский Internet Exchange (YAR-IX) > Сайт: http://yar-ix.net > > nic-hdl: SVS141-RIPE > X-NCC-RegID: ru.gorizont > > , > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru > > > > -- > С уважением, Сергей Соколов > Заместитель директора > Zavolga.Net (ООО "Горизонт"), г. Ярославль > Тел.: +7 4852 333-402 > Сайт: http://zavolga.net > > Руководитель проекта > Региональный Интернет Дневник > Сайт: http://dnevnik76.ru > > Руководитель проекта > Ярославский Internet Exchange (YAR-IX) > Сайт: http://yar-ix.net > > nic-hdl: SVS141-RIPE > X-NCC-RegID: ru.gorizont > > > _______________________________________________ > nginx-ru mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru > -- best reguards Paul <sejo> Sin
_______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
