pb sur reecriture d’URL recursive

achaternet

WRInaute discret
'soir,

Je coince malgre de multiples combinaisons, sans resultat :(

d apres l article de Dan:

RewriteRule index(-.+)-([^-]+)-([^-&]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index-([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]


ça c ok.

Mon but:

modifier sa reecriture index-var1-valeur1-var2-valeur2-....-varN-valeurN.html en var1-valeur1-var2-valeur2-....-varN-valeurN.html


cad enlever "index-". J insiste sur le tiret..

J ai essaye ça, mais marche poa


RewriteRule (.*)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N]
RewriteRule -([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]


Ou non plus

RewriteRule (-.+)-([^-]+)-([^-&]*)([^-]*)\.html trouve$1&$2=$3$4\.html [N]
RewriteRule trouve-([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]


ça par contre c ok, j y arrive: -var1-valeur1-var2-valeur2-....-varN-valeurN.html


Ou est l erreur ? 8O

thks
 

BZHcool

WRInaute discret
Salut achaternet,

Tu dis :

d apres l article de Dan:

Tu peux retrouver un complément de cet article ICI et pour tout problème demander conseil directement à celui qui l'a rédigé...

En espérant que tu trouves ton bonheur!
 

achaternet

WRInaute discret
Oui, c est bien de cette article... mais ca m aide pas plus :(

Dan fait partie de ce forum, et la modif a faire est minim.

Il n est heureusement pas le seul a y pouvoir repondre.

Une proposition?
 

BZHcool

WRInaute discret
Je pense qu'il devrait passer par là pour te répondre si le temps le lui permet...

Sinon attends je regarde un peu ton code pour voir si je trouve quelque chose...
 

achaternet

WRInaute discret
bon ouf!

ca faisait qq heures, je commencer a desperer.

Donc pour ce a qui ça peut interesser:

RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]

au lieu de

RewriteRule index(-.+)-([^-]+)-([^-&]*)([^-]*)\.html index$1&$2=$3$4\.html [N]
RewriteRule index-([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]



cad (-.+) en (.+)

tsss, des fois j ai :oops:
lol
 

hetzeld

WRInaute passionné
Salut achaternet,

C'est vrai que je ne passe plus très souvent par ici... mais BZHcool m'a contacté ;)

La règle correcte serait:
Code:
RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N] 
RewriteRule ([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]
pas besoin des 2 occurences de index dans les 2 règles (une fois à droite et une fois a gauche dans la deuxième)

Ca permet de réécrire vara-11-varb-12-varc-13.html en index.php?vara=11&varb=12&varc=13
ou encore var-99.html en index.php?var=99

A+

Dan
 

hetzeld

WRInaute passionné
Achaternet,

J'en ai profité pour compléter l'article avec cet exemple, comme il pourra servir à d'autres ;)

A+

Dan
 

achaternet

WRInaute discret
ok, impect.

Par contre je confirme bien que pour moi ca marche avec:

RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N]
RewriteRule index([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]




et pas

RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N]
RewriteRule ([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]



8O
 

hetzeld

WRInaute passionné
Achaternet,

Je ne voudrais pas passer pour celui qui tient à avoir raison, mais en copiant la règle que tu donnes dans ton dernier post, cela ne marche pas ;)

J'explique pourquoi...

La première règle va boucler en traitant un couple variable+valeur à chaque fois, jusqu'au dernier (à cause du flag [N])
La deuxième règle prendra le relais ensuite, une fois que la première ne sera plus vérifiée.
Et que voit-on dans cette règle ? Tu cherches une correspondance avec le mot "index" qui ne se trouve nulle part. Ni dans ta règle 1, ni dans ton URL. Cette règle ne sera donc jamais validée.
Pour ceux qui veulent faire un essai chez eux, voici le contenu des fichiers .htaccess et index.php à créer (de préférence dans un répertoire temporaire)
index.php :
Code:
<?
foreach ($HTTP_GET_VARS as $key=>$value)
	print "$key => $value <br>";
?>
.htaccess :
Code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N] 
RewriteRule ([^-]+)-([^-]*)(.*)\.html index.php?$1=$2$3 [L]
Cordialement ;)

Dan
 

Discussions similaires

Haut