在nginx中添加花括号来映射块

我有一个问题试图让下面的configuration工作。 每次运行configurationtesting时,都会收到失败的通行证。 首先让我给你看一个可行的configuration

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的configuration中有特殊的含义,因此你必须用一个单引号或双引号把你的regex转换成一个明确的string。

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