Well I have a slightly different question than this one: I don't want to map two variables at the same time, I want to map one variable using two others as parameters.
Indeed I have read in the documentation about the map directive that:
Before version 0.9.0 only a single variable could be specified in the first parameter.
So, as I have nginx 1.8, I expect to be able to use more than a single variable in the first parameter.
This led me to think that I could write something like the two last map directives in this example:
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" "" "";
}
But it doesn't work (nginx -t
returns a
invalid number of arguments in "map" directive
)
So, how is it possible to specify several variables in the first parameter? Or, what does actually mean the documentation, if I misunderstood it?