J'ai besoin de configurer mon proxy inverse pour que le paramètre suivant soit ajouté à la fin de l'URL: &locale=de-de
Cela fonctionne presque:
rewrite ^(.*)$ $1&locale=de-de break;
Cependant, le problème est que je n'ai besoin d'ajouter '& locale = de-de' que s'il n'est pas déjà là et s'il y a un '?' dans l'url ...
Puis-je obtenir de l'aide sur la formulation de l'expression rationnelle correcte pour ce faire?
Une autre question: pourquoi le point d'interrogation dans mon URL ne s'affiche-t-il pas si j'utilise ceci:
$ uri? $ Args
Ou $ uri $ is_args $ args traduit l'url non encodée et le point d'interrogation est affiché comme% 3f.
Des idées?
EDIT: Il semble que ce comportement existe lors de l'utilisation en combinaison avec proxy_pass. Dans une simple réécriture, cela fonctionne très bien.
La correspondance pour
rewrite
n'inclut pas les paramètres de requête, vous devez donc tester cela ailleurs.Essayer:
la source
rewrite
besoinlast
d'être sûr. Édité.Le
rewrite
ne modifie pas les paramètres de la demande, uniquement la partie chemin de l'URI. D'après mon expérience, jouer avec les réécritures conduit à des cycles étranges, où le nouveau paramètre est ajouté à l'infini. La réécriture n'est probablement pas la façon de procéder dans Nginx.Au lieu de cela, vous devez modifier la
$args
variable à l'aide de laset
directive:la source
$args
devrait être muté. Voir plutôt la solution de @ AlexanderAzarov.