Version complète: sur le forum Webmaster Hub : Problème avec un point d'interrogation dans une règle
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
Xtouch
Bonjour à tous,

Je cesse de m'escrimer et je vous demande conseils, car malgré mes recherches, je me retrouve dans l'impasse.
Je souhaite réaliser la chose suivante :
1 : document.htm ==> document.php?id=x
2 : document.htm?variable=y&variabley=z&... ==> document.php?id=x&variable=y&variabley=z&...

Je cherche à faire cela en une seule règle (ce sont des règles écrites par un script PHP dans le .htaccess)

Actuellement, j'ai pensé à :

CODE
RewriteRule ^document.htm(\??)([[:graph:]]*)$ /document.php?id=x&$2 [L]

Qui ne marche que dans le premier cas, ou qui marche si je ne met pas le ? dans le deuxième cas (document.htmvariable=y&variabley=z&... ).

Pour essayer de comprendre, j'ai essayé :
CODE
RewriteRule ^document.htm([-?]?)([[:graph:]]*)$ /document.php?id=x&$2 [L]

Qui marche dans le premier cas, qui marche dans le second si à la place du ? je met un - (document.htm-variable=y&variabley=z&...). Ce que je ne comprend pas car pour moi, dans les crochets, le ? a bien le comportement d'un caractère normal il me semble ...

Ca se trouve, ce n'est pas possible de récupérer les vrais paramètres de l'url pour les réécrire en fait ... Vous allez me dire, c'est en effet idiot de laisser des paramètres dans l'url lorsque justement on fait de la réécriture d'URL, mais en fait ce sont des variables des débugs que j'ai besoin de mettre de cette manière.

Aurriez vous une recette magique ?
Xtouch
En insistant sur google et en variant les mots clés de la recherce, j'ai trouvé !

C'était un problème de flag : en rajoutant le flag QSA, les paramètres de l'URL sont conservés.

Ce qui donne tout simplement la règle suivante :
CODE
RewriteRule ^document.htm$ /document.php?id=x [QSA,L]
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.