在 nginx 中的 Map 块中添加花括号

在 nginx 中的 Map 块中添加花括号

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

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

答案1

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

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

相关内容