好吧,我有一个与此问题略有不同的问题:我不想同时映射两个变量,我想使用另外两个作为参数来映射一个变量。
在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" "" "";
}
但这不起作用(nginx -t
返回一个
“ map”指令中的参数数目无效
)
那么,如何在第一个参数中指定几个变量呢?或者,如果我误解了文档,这实际上意味着什么?
我已经为问题添加了答案,但实际上这个问题看起来像是一个XY问题meta.stackexchange.com/questions/66377/what-is-the-xy-problem
—
Alexey
也许有点(我不知道他们)。但是我真正地认为这实际上是不可能的,并且在文档中我想了解一些东西。现在很清楚。
—
zezollo's