Adicionando chaves ao bloco de mapas no nginx

1

Estou com um problema ao tentar fazer com que a configuração a seguir funcione. Toda vez que executo o teste de configuração, recebo um passe com falha. Para começar, deixe-me mostrar uma configuração de trabalho

location / { if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)"){ return 403; } }

Mas quando tento ser um pouco inteligente e coloco isso em um bloco de mapa, recebo um erro

map $query_string $edgars_access_denied { default "200"; ~mosConfig_[a-zA-Z_]{1,21}(=|\%3D) "403"; }

    
por WilhelmE 19.03.2015 / 13:00

1 resposta

3

Aparelhos como o ponto-e-vírgula têm um significado especial na configuração do nginx, portanto você deve transformar sua regex em uma string explícita cercando-a com aspas simples ou duplas.

map $query_string $edgars_access_denied {
    default "200";
   "~mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" "403";
}
    
por 19.03.2015 / 13:35