par
Ryle » 10 mars 2008, 12:30
La ré-écriture d'url ne permet que de ré-écrire des url (ça semble évident, mais on peut parfois l'oublier

). Le serveur web prend l'url demandée par l'internaute, regarde si elle correspond à un masque et le cas échéant, la transforme en suivant la règle que tu lui as donné, mais il ne fait rien de plus. En gros, tu ne peux pas lui demander de transformer tout seul "viande" en "1", il faut que tu spécifies explicitement que s'il trouve le mot "viande" à tel endroit de ton url, alors il doit rediriger l'utilisateur vers telle page, avec l'id égal à 1.
Le problème de cela, c'est que tu vas avoir autant de règles de ré-écriture que d'éléments dans ta base, et qu'il va falloir les maintenir en parallèle ce qui est fastidieux (comme les moutons) et sans grand intérêt vu les possibilités qu'offre les expressions régulières.
Le nombre de paramètre dans l'url de départ et dans celle d'arrivée n'a pas nécessairement besoin d'être identique. La seule chose importante c'est que dans celle d'arrivée tu ais toutes les informations nécessaires. En gros, si tu n'utilises pas "viandes" ou "vache", aucune raison de les récupérer

Dans ton cas, si tu utilises des adresses de la forme "viandes/vache-1-2.html", tout ce dont tu as besoin de récupérer ce sont les id 1 et 2 pour pouvoir les passer à ton script existant.
En revanche, si tu veux utiliser une url du type "viandes/vache.html" où tu ne dispose pas des id, il te faut effectivement récupérer les infos "viandes" et "vache" à l'aide de l'expression régulière, mais également créer un nouveau script php qui prendra non plus les id famille et sous famille pour afficher la page, mais les libellés de celles-ci....
La ré-écriture d'url ne permet que de ré-écrire des url (ça semble évident, mais on peut parfois l'oublier :)). Le serveur web prend l'url demandée par l'internaute, regarde si elle correspond à un masque et le cas échéant, la transforme en suivant la règle que tu lui as donné, mais il ne fait rien de plus. En gros, tu ne peux pas lui demander de transformer tout seul "viande" en "1", il faut que tu spécifies explicitement que s'il trouve le mot "viande" à tel endroit de ton url, alors il doit rediriger l'utilisateur vers telle page, avec l'id égal à 1.
Le problème de cela, c'est que tu vas avoir autant de règles de ré-écriture que d'éléments dans ta base, et qu'il va falloir les maintenir en parallèle ce qui est fastidieux (comme les moutons) et sans grand intérêt vu les possibilités qu'offre les expressions régulières.
Le nombre de paramètre dans l'url de départ et dans celle d'arrivée n'a pas nécessairement besoin d'être identique. La seule chose importante c'est que dans celle d'arrivée tu ais toutes les informations nécessaires. En gros, si tu n'utilises pas "viandes" ou "vache", aucune raison de les récupérer :) Dans ton cas, si tu utilises des adresses de la forme "viandes/vache-1-2.html", tout ce dont tu as besoin de récupérer ce sont les id 1 et 2 pour pouvoir les passer à ton script existant.
En revanche, si tu veux utiliser une url du type "viandes/vache.html" où tu ne dispose pas des id, il te faut effectivement récupérer les infos "viandes" et "vache" à l'aide de l'expression régulière, mais également créer un nouveau script php qui prendra non plus les id famille et sous famille pour afficher la page, mais les libellés de celles-ci....