· 8 years ago · Jan 26, 2018, 06:42 PM
1Как напиÑать location в nginx, который Ñрабатывает, еÑли два уÑÐ»Ð¾Ð²Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ выполнÑтьÑÑ. Логично было бы напиÑать так:
2
3if ($http_user_agent ~* "Opera" AND $http_referer ~* "yandex.ru") {
4bla bla bla
5}
6
7nginx не предуÑматривает в уÑловиÑÑ… логичеÑкие операторы
8Решение еÑть в виде хака:
9
10set $a "";
11if ($http_user_agent ~* "Opera" ) {
12set $a 1;
13}
14if ($http_referer ~* "yandex.ru") {
15set $a 1$a;
16}
17if ($a = 11) {
18bla bla bla
19}
20
21Ð˜Ð´ÐµÑ Ð¾Ñ‡ÐµÐ½ÑŒ проÑта, ÑоздаетÑÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ, в которую по мере ÑÑ€Ð°Ð±Ð°Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÑƒÑловий накапливаетÑÑ Ñтрока. Далее Ñрабатывает какое-либо уÑловие Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ Ñтой Ñтроки.