Passage en URL Rewriting : gestion des paramètres

Nouveau WRInaute
Bonjour,

je m'occupe d'un site de sport et je souhaite le passé durant le printemps à l'URL rewriting. J'ai lu les tutos sur le site et pas mal de topic mais je n'ai pas trouvé réponse à ma question.

Le mieux est de vous donner un exemple : ma page vaut : /index.php?p=match&i=12345 , je travaille donc avec l'id de la table matchs.
Avec l'URL Rw, je souhaite pouvoir gérer mon url comme ca :
/match/2010/J1/lyon-marseille/ , (match de la journée 1 de la saison 2010 entre lyon et marseille).

Vous constatez que j'ai aucune correspondance avec mon id. J'estime que mon visiteur n'a pas à connaitre ma table même si ça n'a aucune incidence (pas grave :)).

Problème : à part changer l'url cible en partant de la réécrite pour retrouver mes petits dans le PHP je ne vois pas (et forcément c'est fastidieux).
Autre solution, ajouter à un endroit le fameux id :
/match/2010/J1/lyon-marseille-12345/
Dans ce cas, je n'ai rien à faire de complexe côté PHP mais ca veut aussi dire qu'un malin qui ferait :
/match/1234/X0/toto-titi-12345/ tomberait bien sur la bonne page ! (même avec une RegEx complexe ça passe).

Qu'en pensez-vous ? En fait ma question repose sur le "comment faire" et sur le "qu'est-ce qu'il faut faire pour que ce soit bien".

J'ai plus le problème avec des rubriques qu'avec des articles où là, l'url est le titre de l'article au format URL (du moins c'est comme ca que je le vois :) )

Merci à tous
Cordialement
 
WRInaute discret
Bonjour,

Comme ça, à froid...

Je présume que dans la table il y a des champs, autres que l'id, qui permettent de savoir que le match 12345 concerne l'année 2010 et les équipes de Lyon et Marseille... et même que c'est Lyon que reçoit (champs année ? champs equipe1 ? champs equipe2 ? etc...)

Donc on peut imaginer qu'une url plus courte (je trouve qu'il y a trop de sous répertoires) comme :
/match-2010-lyon-marseille.html
Peu importe la journée, dans un championnat cette rencontre n'a lieu qu'une fois... le retour sera marseille-lyon (faut éventuellement faire le distingo entre le championnat et la coupe... (et rajouter un item ou remplacer match)

dès lors on peut rattacher cette url vers une url qui récupère les valeurs :
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)-([a-z]+).html$ index.php?p=$1&annee=$2&equipe1=$3&equipe2=$4

Y a plus qu'à interroger la base pour extraire les données correspondantes (et plus besoin de se soucier de l'id)

Pas testé, mais dans les grandes lignes ça devrait rouler bien qu'en jouant plus finement avec les expressions régulières y a sans doute le moyen d'aller plus loin
 
Nouveau WRInaute
Bonsoir et merci dolmenhir pour ta réponse.
Désolé pour ma réaction tardive mais je n'ai pas revenir plus tôt.

Ta solution répond parfaitement à mon problème de conception. En gros, dans mon cas, faire de l'URL rewriting revient à changer mon fusil d'épaule en terme de critères de recherche. Avant : bête ID, Après : paramètres plus explicites (même si textuel alors que moins performant).
Donc ça m'oblige quand même à réécrire mes fonctions outils d'appels à mes tables... Ca va pas être sans conséquence, ne serait-ce qu'en délai d'implantation.

merci :)
 
Discussions similaires
C
Réponses
4
Affichages
1K
christele2
C
Haut