小编zez*_*llo的帖子

如何在nginx的map指令中指定几个变量

好吧,我有一个与这个略有不同的问题:我不想同时映射两个变量,我想使用另外两个作为参数来映射一个变量。

事实上,我关于 map 指令的文档中读到:

在 0.9.0 版本之前,只能在第一个参数中指定一个变量。

因此,由于我有 nginx 1.8,我希望能够在第一个参数中使用多个变量。

这让我想到我可以编写类似于本示例中最后两个 map 指令的内容:

map $http_user_agent $bot {
    default         "";
    "~*Googlebot"   "yes";
    "~*MJ12bot"     "yes";
    "~*bingbot"     "yes";
    etc.
}

map $request        $bot    $np {
    default         ""      "";
    default         "yes"   "";
    "~*newproject"  ""      "yes";
    "~*newproject"  "yes"   "";
}

map $bot    $np     $regular {
    ""      ""      "yes";
    ""      "yes"   "";
    "yes"   ""      "";
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用(nginx -t返回一个

“map”指令中的参数数量无效

)

那么,如何在第一个参数中指定多个变量呢?或者,如果我误解了文档,它的实际含义是什么?

configuration nginx

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

configuration ×1

nginx ×1