rewriting d'un nombre en chaine de caractère

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

oliwood
Nouveau WRInaute
 
Messages: 4
Inscription: Sam Juin 16, 2007 13:51

rewriting d'un nombre en chaine de caractère

Message le Sam Juin 16, 2007 14:09

Bonjour à tous !

Merci pour votre site et tout les exemples expliquant les techniques du rewriting 8)
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 :cry:

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 :cry:

Mercid e votre aide
Olivier

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Sam Juin 16, 2007 14:40

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
 
Messages: 4
Inscription: Sam Juin 16, 2007 13:51

Message le Sam Juin 16, 2007 15:00

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
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Sam Juin 16, 2007 15:12

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
 
Messages: 4
Inscription: Sam Juin 16, 2007 13:51

Message le Sam Juin 16, 2007 17:32

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 :D à 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 :cry: )
RewriteRule ^maison-jardin\.html$ categories.php?id=47 [L]

Merci de ton aide
A+

jeroen
WRInaute accro
WRInaute accro
 
Messages: 2384
Inscription: Ven Aoû 30, 2002 13:35

Message le Sam Juin 16, 2007 17:51

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
 
Messages: 4
Inscription: Sam Juin 16, 2007 13:51

Message le Dim Juin 17, 2007 2:33

capito, si señor
muchos gracias
:lol:


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

  • Liste des backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Calculer l'indice de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités