Marie Posté 30 Janvier 2006 Posté 30 Janvier 2006 Bonjour Je fais mes débuts en .htaccess. J'ai réussi à réecrire à peu près proprement mes urls mais j'ai un problème lorsqu'il y a des tirets dans l'url que je veux réecrire.. Exemple : http://www.domain.com/articles/liste.php?type=modele&categorie=PANTALON&gamme=2 devient http://www.domain.com/articles/modele-pantalon-2.html grâce à RewriteRule ([^/]+)-([^/]+)-([0-9]+)\.html$ /articles/liste.php?type=$1&categorie=$2&gamme=$3 [NC,L] Mais comment faire lorsque j'ai des urls de ce type?? http://www.domain.com/articles/liste.php?type=modele&categorie=PANTALON-COURT&gamme=2 Merci!
Jeanluc Posté 30 Janvier 2006 Posté 30 Janvier 2006 Bonjour, Il n'y a pas de solution simple qui permette d'utiliser le tiret, à la fois, comme séparateur des variables et à l'intérieur d'une variable. Tu pourrais utiliser la virgule pour séparer les variables et conserver le tiret dans les noms composés. Cela donnerait quelque chose comme http://www.domain.com/articles/modele,pantalon,2.htmlhttp://www.domain.com/articles/modele,pantalon-court,2.html Jean-Luc
Marie Posté 30 Janvier 2006 Auteur Posté 30 Janvier 2006 Merci pour ta réponse Jeanluc Les virgules, je ne suis pas trop pour... ça me plait moyennement.. Il n'y a donc pas d'autre solution?
Nicolas Posté 30 Janvier 2006 Posté 30 Janvier 2006 Bonjour Marie, Je pense que tu dois ajouter un groupe facultatif à ton expression: RewriteRule ([^/]+)-([^/]+)-([^-]*)([0-9]+)\.html$ /articles/liste.php?type=$1&categorie=$2$3&gamme=$4 [NC,L] un groupe facultatif de caractères, à lexclusion du tiret, contenant la partie de lexpression déjà traitée ([^-]*)
Jeanluc Posté 30 Janvier 2006 Posté 30 Janvier 2006 D'accord sur le principe, à condition qu'uniquement la deuxième variable puisse être un nom avec tiret. Je pense que la règle que tu donnes n'est pas tout à fait correcte : RewriteRule ([^/-]+)-([^/]+)-([0-9]+)\.html$ /articles/liste.php?type=$1&categorie=$2&gamme=$3 [NC,L] Jean-Luc
Marie Posté 30 Janvier 2006 Auteur Posté 30 Janvier 2006 Héhé! Excellent! La règle de Jeanluc marche à merveille. Le site rempli la condition, seule la deuxième variable possède parfois un tiret. Merci Nicolas et Jeanluc Y'a pas à dire, c'est vraiment un métier
Marie Posté 30 Janvier 2006 Auteur Posté 30 Janvier 2006 Bon c'est là qu'on s'aperçoit que je débute... Je n'avais pas prévu tous les cas semble-t-il.. En plus des urls du type http://www.domain.com/articles/liste.php?type=modele&categorie=PANTALON&gamme=2 j'ai aussi des urls du type http://www.domain.com/articles/liste.php?type=modele&categorie=CHAUSSURES Et là forcément ma règle ne fonctionne pas... Que dois-je faire? Merci!
Nicolas Posté 30 Janvier 2006 Posté 30 Janvier 2006 Il faut alors ecrire 2 règles : une pour 2 variables et une pour 3 variables. Il y a p-e plus simple mais j'ai eu le même problème et en écrivant 2 règles cela fonctionne. EDIT: Il faut mettre la règle avec 3 variables en 1er (à confirmer)
Marie Posté 30 Janvier 2006 Auteur Posté 30 Janvier 2006 Il faut alors ecrire 2 règles : une pour 2 variables et une pour 3 variables. <{POST_SNAPBACK}> Arf! je n'y avais pas pensé! Et ça marche! Merci Nicolas
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant