У меня возникла проблема, пытаясь заставить работать следующую конфигурацию. Каждый раз, когда я запускаю тест конфигурации, я получаю неудачный проход. Для начала позвольте мне показать вам рабочую конфигурацию
location / { if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)"){ return 403; } }
Но когда я пытаюсь быть немного умным и помещаю это в блок карты, я получаю ошибку
map $query_string $edgars_access_denied { default "200"; ~mosConfig_[a-zA-Z_]{1,21}(=|\%3D) "403"; }
Фигурные скобки, такие как точка с запятой, имеют особое значение в конфигурации nginx, поэтому вы должны превратить свое регулярное выражение в явную строку, заключив ее в одинарные или двойные кавычки.
map $query_string $edgars_access_denied {
default "200";
"~mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" "403";
}