Url rewritting (suite)

Eléphant du PHP | 294 Messages

12 mars 2008, 02:04

Salut

J'ai encore besoin de quelques lumières pour comprendre l'url rewrittting

je voudrais dans mon lien afficher une catégorie, donc même si elle ne me sert pas pour ouvrir un article je la passe dans l'url

Code : Tout sélectionner

fiche_article.php?cat=categorie-legumes&id=6
ensuite je souhaite crée une règle de rewritting pour obtenir :

Code : Tout sélectionner

article-categorie-legumes-6.html
j'ai fait ça, mais manifestement , y'a quelque chose que j'ai pas compris:

Code : Tout sélectionner

RewriteRule article-([a-z]+)-([0-9]+).html fiche_article.php?cat=$1&id=$2 [L]
merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 mars 2008, 13:17

([a-z]+) correspond à une chaine composée uniquement de une ou plus lettres en minuscule.

Dans ton adresse "article-categorie-legumes-6.html" cela devrait donc correspondre à la partie "categorie-legumes", or cette partie comporte également un tiret. Du coup le masque n'est pas respecté et la règle pas appliquée :)

Pour ajouter le caractère tiret "-" dans une classe d'expression régulière, il faut le placer tout à la fin (sans quoi il détermine un interval, ex : [a-zA-Z] = les caractères ascii entre 'a' et 'z' ou entre 'A' et 'Z', [az-] = le caractère 'a' ou le caractère 'z' ou le tiret :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 294 Messages

13 mars 2008, 01:35

merci
j'ai pigé et appliqué.
bien à toi