|
0 / 0 / 0
Регистрация: 20.04.2019
Сообщений: 3
|
|
Map с несколькими условиями20.04.2019, 21:55. Показов 3580. Ответов 4
Друзья, добрый день.
Здоровье уже не позволяет "без поллитра не разберешь", поэтому прошу помощи. Пытаюсь скрестить в map несколько условий проверки на паразитарные организмы, но не получается. Критерии следующие: отбрасываем тех кто пришел с браузерными юзерагентами и тех кто пришел не по имени сайта, а по IP. Но в любом случае пропускаем тех, кто пришел по некому адресу somePath. Сейчас работает конструкция из 4-х map. map $http_user_agent $sign_ua { "" 1; "~curl/.+" 1; "~*WordPress.+" 1; default 0; } map "$host" $signhost { "mydomain.name" 1; default:default 0; } map "$uri" $signuri { "~*somePath*" 1; default 0; } # если есть суперадрес или не бот = проходи map "$signuri:$sign_ua" $signres { "1:0" 1; "1:1" 1; "0:0" 1; "0:1" 0; default 0; } server { listen 80; listen [::]:80; #if ($signres = 0 ) {return XXX;} #if ($signhost = 0) {return YYY;} Читал, что в map можно использовать несколько условий, пытался сделать что-то типа с точками, звёздочками, крышечками, палочками и т.п. = не получается. Заработало только для условия "mydomain.name:/" и только для главной страницы map "$host:$uri" $signres { "mydomain.name:~*(.)" 1; # здесь должно быть условие выдать 1 если пришли по имени сайта и запрошен любой адрес # здесь надо выдать 1 если пришли как угодно, но запрошен определенный путь somePath default 0; }
0
|
|
| 20.04.2019, 21:55 | |
|
Ответы с готовыми решениями:
4
While c несколькими условиями do While с несколькими условиями
|
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
||||||
| 21.04.2019, 02:21 | ||||||
Сообщение было отмечено Ibif как решение
Решение
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.04.2019
Сообщений: 3
|
|
| 21.04.2019, 10:56 [ТС] | |
|
Спасибо, огромное. Заработало: чуток подправил конструкцию: добавил .*, $uri сменил на $request_uri и добавил условие проверки на ботов (1=бот)
map "$host:$request_uri:$bad_useragent" $signres { "~mydomain\.name:.*:0" 1; # любой адрес и не бот "~[^:]*:.*somePath.*: (0|1)" 1; # 1 пропускам по определенному пути любого. Пробел перед открывающейся круглой скобкой лишний, иначе смайлик рисует default 0; }
0
|
|
|
1137 / 685 / 412
Регистрация: 07.11.2015
Сообщений: 1,102
|
||
| 21.04.2019, 12:55 | ||
Сообщение было отмечено Ibif как решение
Решениеsite.ru:/mydomain.name::0/:1 https://regex101.com/r/Fwl6Sn/1Если добавить ^ в начало шаблона и $ в конец, то mydomain.name может совпасть только в начале строки, а :0 только в конце строки."~^mydomain\.name:.*:0$" 1; # любой адрес и не бот
1
|
||
|
0 / 0 / 0
Регистрация: 20.04.2019
Сообщений: 3
|
|
| 21.04.2019, 17:56 [ТС] | |
|
Спасибо, супер
0
|
|
| 21.04.2019, 17:56 | |
|
Помогаю со студенческими работами здесь
5
Дженерики с несколькими условиями Работа while с несколькими условиями Select с несколькими условиями СЧЕТЕСЛИ с несколькими условиями Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|