[résolu] Dossier virtuel + ?a=b facultatif

Nouveau WRInaute
Bonjour,

Je bloque sur un petit problème d'écriture d'url depuis tantôt et je ne parviens pas à trouver la solution :wacko:

Voici ce que j'ai et ce que j'aimerais faire
J'ai des règles qui me transforment

x/y/z/ en ?op=x&sop=y&ssop=z
x/y/ en ?op=x&sop=y
x/ en ?op=x
Code:
RewriteEngine on
RewriteRule ([^-]+)/([^-]+)/([^-]+)/$ /index.php?op=$1&sop=$2&ssop=$3 [L]
RewriteRule ([^-]+)/([^-]+)/$ /index.php?op=$1&sop=$2 [L]
RewriteRule ([^-]+)/$ /index.php?op=$1 [L]

Jusque là tout va bien, le problème se pose quand je veux rajouter des variables GET (url),
x/y/z/?a=b&c=d en ?op=x&sop=y&ssop=z&a=b&c=d

elles ne sont tout simplement pas prises en compte, ce qui est logique vu ma règle (le $ à la fin qui permet de ne pas transformer des url de type css/styles.css en index.php?op=css&sop=styles.css).

Le problème c'est que je ne sais pas comment l'écrire pour que ça fonctionne :s

J'espère que quelqu'un pourra m'aider :)

Merci d'avance,
Aureg
 
WRInaute accro
Si tu veux que ?a=b&c=d et ses dérivés n'apparaissent pas dutout dans les url pour éviter le duplicata, ben il faut pas utiliser le GET, faut trouver autre chose !

POST + cookie par exemples
 
Nouveau WRInaute
ca ne me dérange pas que certaines variables apparaissent en URL, celles qui sont rewritées sont celles qui font la structure du site (services/societe/ ...) mais les parametres facultatifs peuvent être passé en get, le cookie n'est pas adapté dans ce cas la et le post est pas super non plus (actualisation de la page, retour en arriere,... :wink:

Merci pour cette réponse rapide :wink:
 
WRInaute passionné
le seul moyen d'avoir des variables avec le rewriting c'est de les transférer dans l'url cible avec l'option QSA :
Code:
RewriteEngine on
RewriteRule ([^-]+)/([^-]+)/([^-]+)/$ /index.php?op=$1&sop=$2&ssop=$3 [L, QSA]
RewriteRule ([^-]+)/([^-]+)/$ /index.php?op=$1&sop=$2 [L, QSA]
RewriteRule ([^-]+)/$ /index.php?op=$1 [L, QSA]
 
Discussions similaires
Haut