[Url Rewriting] probleme parametre

probleme parametre [Url Rewriting] - Réseaux - Réseaux grand public / SoHo

Marsh Posté le 06-03-2012 à 15:02:31    

Bonjour,
 
j'ai une URL du genre

Code :
  1. /machin/truc/?param1=2&param2=1


 
je voudrait la transformer en un truc du genre

Code :
  1. machin.php?mode=truc&param1=2&param2=1


 
j'ai deja commencé par faire ca :

Code :
  1. RewriteEngine On
  2. RewriteRule ([A-Z]+)/([A-Z]+)/(.*) /machin.php$3 [L]


qui marche et qui donne un

Code :
  1. machin.php?param1=2&param2=1


 
par contre pour rajouter le "mode=truc", j'ai essayé :

Code :
  1. RewriteEngine On
  2. RewriteRule ([A-Z]+)/([A-Z]+)/\?(.*) /machin.php?mode=$2&$3 [L]


ou  

Code :
  1. RewriteEngine On
  2. RewriteRule ([A-Z]+)/([A-Z]+)/(.*) /machin.php$3&mode=$2 [L]


dans ce cas, j'ai un $3 qui est vide
 
mais ni l'un ni l'autre ne fonctionne.
J'ai essayé d'activer les log d'url rewriting, mais il n'affiche pas la l'adresse complète avec les paramètres sur laquelle il renvoie, et si on affiche un  

Code :
  1. $url = getenv('REQUEST_URI');
  2. echo $_SERVER['REQUEST_URI'];


on obtient la page d'origine.
 
je me doute que le problème vient du point d'interrogation, mais pourquoi ca marche dans mon premier test et pas quand je complete?
 
merci :jap:


---------------
ras
Reply

Marsh Posté le 06-03-2012 à 15:02:31   

Reply

Marsh Posté le 06-03-2012 à 18:44:39    

bon, je viens de voir que pour mon truc qui marche

Code :
  1. RewriteRule ([A-Z]+)/([A-Z]+)/(.*) /machin.php$3 [L]


 
ca, ca fonctionne aussi

Code :
  1. RewriteRule ([A-Z]+)/([A-Z]+)/(.*) /machin.php [L]


 
donc il gere automatiquement les parametres en fait. et n'arrive pas a les concatener ensuite a priori :/


---------------
ras
Reply

Marsh Posté le 06-03-2012 à 18:55:32    

Bon, solution :

 

utilsation de la variable QUERY_STRING

Code :
  1. RewriteRule ([A-Z]+)/([A-Z]+)/(.*) /test/test.php?mode=$2&%{QUERY_STRING} [L]
 

et il y a une truc avec le flag QSA aussi : http://httpd.apache.org/docs/2.4/f [...] l#flag_qsa


Message édité par kaillou38 le 06-03-2012 à 18:55:49

---------------
ras
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed