Problème de rewriting avec le caractère -

Nouveau WRInaute
Bonjour à tous,

Etant loin de ce qu'on pourrait appeler un crack j'utilise le rewriting sur un de mes sites de la forme relativement simple comme suis :


RewriteRule ([a-z]+)\.html$ /prenom/prenom.php?prenom=$1 [L]


Le petit souci viens du fait que quand ma variable prenom est composé du style jean-pierre, lorsque j'appele la page prenom/prenom-jean-pierre.html cela redirige vers la page prenom/prenom.php?prenom=pierre et pas prenom/prenom.php?prenom=jean-pierre, c'est moche...

J'imagine qu'il y a un souci avec le tiret qui doit couper la variable en deux mais je ne sais pas trop quoi faire...

Si quelqu'un avait une petit soluce ca m'arrangerait bien.

Merci bien
 
WRInaute accro
t'es sur de toi ? d'apres ta regle, je dirai plutot que tu arrive sur :
prenom/prenom.php?prenom=prenom-jean-pierre

derriere tu ferai pas un substr() avec "-" en parametre et prendrai ce qui a dans tabl[1] ?
 
Nouveau WRInaute
Merci de ta réponse,

Pour être franc j'ai recopié un peu betement les regles sans trop les comprendre.

Voila le détail du fichier htaccess situé dans le repertoir /prenom/ :

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^prenom\.html$ /prenom/prenom.php [L]

RewriteRule ([a-z]+)\.html$ /prenom/prenom.php?prenom=$1 [L]

RewriteRule ([A-Z]+)\.html$ /prenom/prenom.php?prenom=$1 [L]

Dans ce repertoire ce trouve ma page prenom.php et ça doit etre un coup de bol mais ca semble fonctionner comme ca, a savoir que c'est bien la page prenom/prenom-henri.html qui affiche prenom/prenom.php?prenom=henri et pas prenom/prenom.php?prenom=prenom-henri je ne retouche pas la variable prenom qui arrive en fait pour répondre à ta question.

Donc mystère...

Je peux te passer l'url du site si ca ne t'ennuies pas de jetter un ptit coup d'oeil rapidos...
 
WRInaute impliqué
RewriteRule ^prenom\.html$ /prenom/prenom.php [L]

RewriteRule ([a-z]+)\.html$ /prenom/prenom.php?prenom=$1 [L]

RewriteRule ([A-Z]+)\.html$ /prenom/prenom.php?prenom=$1 [L]

Le mieux serait donc:

RewriteRule ^prenom\.html$ /prenom/prenom.php [L]

RewriteRule ([a-z-]+)\.html$ /prenom/prenom.php?prenom=$1 [NC,L]
 
Discussions similaires
Haut