Pourquoi nginx variable $args ou $query_String ne comprend pas les paramètres de la requête après &?
Je suis en train de travailler sur un projet dont j'ai besoin pour l'installation de nginx règle de réécriture pour modifier l'url avec demande de requête. E. g.:
www.abc.com/pathA/pathB/script.pl?paraA=10¶B=20
sera réécrit pour :
www.abc.com/pathA/pathB/script.pl.1020
J'essaye d'utiliser la variable $args ou $query_string (basé sur nginx doc ils sont même) pour vérifier si l'url a la demande de requête que je veux réécrire. Mais j'ai trouvé $args (ou $query_string) a seulement le contenu avant &.
Dans mon exemple, cela signifie que $args = paraA=10. Je ne peux pas obtenir le contenu du paramètre après &. - Je déterminer ce thru nginx journal des erreurs que j'ai mis le niveau de débogage.
Aucune idée de pourquoi je ne peux pas obtenir les paramètres de la requête après le & dans la variable $args ou $query_string ?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
$arg_<argname>
http://www.abc.com/pathA/pathB/script.pl?paraA=10¶B=20
sera réécrit pour : http://www.abc.com/pathA/pathB/script.pl.1020
Ci-dessous est un exemple de config pour faire une telle chose
redirect
à la fin de la réécriture de vous avez des problèmes. Aussi, essayez d'ajouter desrewrite_log on;
cela vous donnera plus de journaux liés à la réécritureLe problème n'est pas causé par le fichier de configuration de nginx. Elle est causée par j'oublie de guillemets doubles quand j'ai envoyé la demande à l'aide de curl. E. g.:
curl "www.abc.com/pathA/pathB/script.pl?paraA=10¶B=20"
Sans guillemets, "¶B=20" jamais être envoyées en fait.