|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
oliwood Nouveau WRInaute
Inscrit le: 16 Juin 2007 Messages: 4
|
Posté le : Sam Juin 16, 2007 15:09 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
Bonjour à tous !
Merci pour votre site et tout les exemples expliquant les techniques du rewriting
Donc, en suivant ces exemples j'arrive effectivement à faire 2-3 trucs.
Mais j'ai un problème lorsque je tente de rewriter un id de catégorie (nombre) en chaine de caratères... j'ai bien trouvé des questions similaires sur le forum, mais rien à faire
Alors sur mon site mes liens étaient comme ça :
categories.php?id=47
que j'ai modifié en :
maison-jardin.html
Dans mon htaccess, si je fais le rewriting en dur ça marche :
RewriteRule ^maison-jardin\.html$ http://www.monsite.com/categories.php?id=47 [L]
Mais comment faire une règle qui marche pour toutes les catégories ?
Dans le forum j'ai trouvé des posts similaires et j'essaie des trucs comme ça :
RewriteRule ^(.*)\.html$ http://www.monsite.com/categories.php?id=$1 [L]
Il m'ouvre bien la page catégorie, mais forcément comme l'id n'est spécifié nulle part, les données liées à la catégorie ne s'affichent pas
Mercid e votre aide
Olivier |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2269
|
Posté le : Sam Juin 16, 2007 15:40 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
Salut, si tu n'a pas d'ID dans ton url, tu ne peux pas !
Une solution serait de faire ça :
RewriteRule ^(.*)\.html$ categories.php?cat=$1 [L]
et dans la page categories.php tu faut matcher le contenu de ta base de donnée pour récupérer l'ID ;o)
PS: il ne faut pas mettre http://... dans la deuxième partie de le rewriterule, sinon le serveur renvoie une redirection (302 il me semble) |
|
| |
|
 |
oliwood Nouveau WRInaute
Inscrit le: 16 Juin 2007 Messages: 4
|
Posté le : Sam Juin 16, 2007 16:00 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
Merci de ta réponse rapide !
Tu dis "matcher le contenu de ta base de donnée pour récupérer l'ID" ?
En me basant par exemple sur l'url, donc parser l'url, récupérer le nom de la catégorie et la comparer avec ma bdd pour récupérer l'ID ?
Mais dans ce cas, mon rewriting ne me sert plus à rien ?? |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2269
|
Posté le : Sam Juin 16, 2007 16:12 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
| oliwood a écrit: |
Merci de ta réponse rapide !
Tu dis "matcher le contenu de ta base de donnée pour récupérer l'ID" ?
En me basant par exemple sur l'url, donc parser l'url, récupérer le nom de la catégorie et la comparer avec ma bdd pour récupérer l'ID ?
Mais dans ce cas, mon rewriting ne me sert plus à rien ?? |
si si, ton rewriterule te sert à récupérer la variable $_GET[cat] à matcher |
|
| |
|
 |
oliwood Nouveau WRInaute
Inscrit le: 16 Juin 2007 Messages: 4
|
Posté le : Sam Juin 16, 2007 18:32 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
Je suis désolé, mais je comprends plus trop là...
Pour pouvoir récupérer l'id, il faut que je le passe dans mon url
Dans mon cas, sur ma page index j'ai transformé mon url de :
categories.php?id=47
en
maison-jardin.html
Du-coup, j'obtiens de zolies url du style : monsite.com/maison-jardin.html à la place de monsite.com/categories.php?id=47
Donc, dans mon htaccess je récupére maison-jardin.html et non un id...
Alros est-ce que je dois rechanger mon lien sur ma page index ?
Dans ma page categories.php j'ai bien un code qui récupère l'id
$id = $_GET["id"];
Mais je n'arrive pas à matcher car pour l'instant je ne suis pas en mesure de le faire dans mon htaccess
Sauf si dans mon htaccess je le mets en dur (mais ce n'est pas utilisable sur l'enssemble du site )
RewriteRule ^maison-jardin\.html$ categories.php?id=47 [L]
Merci de ton aide
A+ |
|
| |
|
 |
jeroen WRInaute accro

Inscrit le: 30 Aoû 2002 Messages: 2269
|
Posté le : Sam Juin 16, 2007 18:51 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
Reprenons au début :
- Sois tu fais des url du type chaise-de-jardin-45.html avec la rewriterule suivante :
RewriteRule ^(.+)-([0-9]+)\.html$ categories.php?id=$2 [L]
- Soit tu fais des url du type chaise-de-jardin.html avec la rewriterule suivante :
RewriteRule ^(.+)\.html$ categories.php?titre=$1 [L]
et au début de la page categories.php tu fais une recherche sur ta base de donnée pour pouvoir retrouver l'id (45 dans l'exempe) correspondant au $_GET[titre] ("chaise-de-jardin" dans l'exemple)
capito ? |
|
| |
|
 |
oliwood Nouveau WRInaute
Inscrit le: 16 Juin 2007 Messages: 4
|
Posté le : Dim Juin 17, 2007 3:33 Sujet du message: rewriting d'un nombre en chaine de caractère |
|
|
capito, si señor
muchos gracias
 |
|
| |
|
 |
| |
|
|