J'ai une URL de ce type:
http://www.example.com/?param1=val1¶m2=¶m3=val3¶m4=val4¶m5=val5
Et je veux la rediriger à celui-ci:
http://www.example.com/newparam/val3/val4
J'ai donc essayé cette règle de réécriture sans succès:
rewrite "/?param1=val1¶m2=¶m3=(.+)¶m4=(.+)¶m5=(.+)" http://www.example.com/newparam/$1/$2 redirect;
Nginx n'est-il pas capable de traiter des paramètres de requête?
Edit : Je ne veux pas réécrire toutes les pétitions. Je n'ai besoin que de réécrire cette URL, sans affecter les autres.
Ok, grâce à l'aide initiale de RZAB, j'ai redéfini sa règle vers cette solution de travail:
location / {
if ($args ~* "/?param1=val1¶m2=¶m3=[0-9]+¶m4=.+¶m5=[0-9]+") {
rewrite ^ http://www.example.com/newparam/$arg_param3/$arg_param4? last;
}
}
Je viens d'ajouter une condition pour éviter la récursion infinie et une? à la fin de la règle pour se débarrasser des paramètres initiaux . Ça marche parfaitement :)
Emplacement =/{ réécrire ^ http://www.example.com/newparam/$arg_param3/$arg_param4; [plus.