Eh bien, j'ai une question légèrement différente de celle-ci : je ne veux pas mapper deux variables en même temps, je veux mapper une variable en utilisant deux autres comme paramètres.
En effet, j'ai lu dans la documentation sur la directive map que:
Avant la version 0.9.0, une seule variable pouvait être spécifiée dans le premier paramètre.
Donc, comme j'ai nginx 1.8, je m'attends à pouvoir utiliser plus d'une seule variable dans le premier paramètre.
Cela m'a amené à penser que je pouvais écrire quelque chose comme les deux dernières directives de carte dans cet exemple:
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" "" "";
}
Mais cela ne fonctionne pas ( nginx -t
renvoie un
nombre d'arguments non valide dans la directive "map"
)
Alors, comment est-il possible de spécifier plusieurs variables dans le premier paramètre? Ou, que signifie réellement la documentation, si je l'ai mal comprise?