将花括号添加到 nginx 中的 Map 块

Wil*_*lmE 3 nginx regular-expressions

我在尝试使以下配置工作时遇到问题。每次我运行配置测试时,我都会失败。首先让我向您展示一个工作配置

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"; }

Xav*_*cas 7

像分号这样的花括号在 nginx 的配置中具有特殊含义,因此您必须通过用单引号或双引号将正则表达式转换为显式字符串。

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