Url rewriting avec titres

Nouveau WRInaute
Bonjour à tous,

je cherche à faire de l'url rewriting sur un site existant.

A la base mes urls ressemblent à monsite/article.php?id=12

Dans l'idéal je voudrais arriver au résultat suivant : monsite/article/le-titre-de-mon-article-12.html

Pour le moment je me suis créé un .htaccess et j'arrive à afficher des adresses du style monsite/article-12.html

Avec une règle qui ressemble à ça : RewriteRule ^article-([0-9]+)\.html$ article.php?id=$1 [L]

Par contre là où je bloque c'est pour récupérer le titre de mon article, si vous avez des pistes à me donner, je suis preneuse :)

Merci d'avance.
 
WRInaute passionné
Salut en fait il suffit de faire comme ca:
RewriteRule ^article/(.+)-(.+).html$ article.php?id=$2 [L]
Tu remarques que dans id je donne le deuxième bidule..
Donc tu peux mettre ce que tu veux, du moment que tu termines l'url par -XXXX.html c'est bon, id recevra le XXXX
 
Nouveau WRInaute
Merci pour cette réponse, mais ça veut dire que n'importe qui peut taper nimportequoi-12.html et partager la page sous ce nom si ça lui chante?
 
WRInaute passionné
oui c'est ca, enfin presque, c'est :
article/nimportequoi-nimportequoi.html
et id recevra le deuxieme nimporte quoi..

Mais etant donné que les urls c'est toi qui va les faire, dans l'interface de ton site, il n'y a aucun soucis..

Ma grand mère disait "avec des si, on coupe du bois" et je trouve que c'est bien vrai dans bien des cas.. Personne ne va s'amuser a changer tes urls et a les partager.
 
WRInaute accro
SI c'est bien fait, tu stockes aussi en base de données le "slug" (ton titre normalisé pour les url) et tu vérifies qu'il correspond à ce que tu attends avant d'afficher, le cas échéant tu rediriges en 301 vers la bonne url.
 
WRInaute accro
Bonjour,

Pour éviter qu'un lien maveillant ou maladroit vers nimportequoi-12.html provoque du duplicate content,tu peux faire la redirection en PHP après avoir récupéré les id dans une table des titres.

Jean-Luc

P.S. pris de vitesse par UsagiYojimbo :wink:
 
Nouveau WRInaute
Merci encore pour vos réponses.
FortTrafic, oui c'est sur que je vois mal les gens changer volontairement ;) mais les erreurs involontaires peuvent arriver, et j'ai entendu dire que c'est mauvais pour le référencement d'avoir deux liens différents pour une même page (je débute, je peux me tromper).
UsagiYojimbo et Jean-Luc, à quel moment est-ce que je peux effectuer cette vérification/redirection? Directement sur la page de mon article?
 
WRInaute passionné
Si vraiment tu tombes dans la parano seo excessive à la mode, oui tu peux prévoir le cas dans ton fichier :
article.php?id=XXX
Quand tu recois XXX tu vérifies que l'url d'origine correspond bien à ton "slug" officiel c'est a dire au nimportequoi que tu veux (basé sur le titre surement) et si c'est le cas, normal, tu affiches l'article, mais si ce n'est pas le cas, tu peux alors faire une redirection header("Location: ton nimportequoi officiel)
Comme ca le visiteur (surtout le googlebot en fait) revient avec le bon nimportequoi et tu pourra souffler un grand coup de soulagement :)
 
WRInaute accro
lina01 a dit:
UsagiYojimbo et Jean-Luc, à quel moment est-ce que je peux effectuer cette vérification/redirection? Directement sur la page de mon article?
La redirection doit obligatoirement être faite avant d'envoyer tout contenu de la page, donc au tout début du traitement.

Jean-Luc
 
Discussions similaires
Haut