8722 sujets

Développement web côté serveur, CMS

bonjour,

j'ai déjà pu mettre en place un système de réécriture d'URL, avec regex dans le .htaccess, qui qui transformait une URL du type

http://www.mon-domaine.com/voiture-occasion-121-Citroen-picasso

en

http://www.mon-domaine.com/fiche-vehicule.php?id=121

ça marche, mais il faut que je me coltine l'identifiant (121 ici) dans l'URL initiale.
comment peut-on faire sans? il me semble que c'est la cas dans wordpress mais je ne sais pas quels sont les mécanismes employés.
Modifié par lionel_css3 (29 Aug 2013 - 17:28)
Bonsoir,

Pour pouvoir faire sans l'ID, il faut que chaque page soit associée à un nom unique, sinon ce n'est pas possible.

Sinon la procédure est simple et assez similaire à ce que tu connais déjà: tu réécris par exemple /pages/mon-article-super-bien en /page.php?article=mon-article-super-bien, puis tu requêtes la base de donnée sur le nom au lieu de l'ID. Si le nom est unique et indexé, la recherche est rapide donc aucun problème de performances.

Les CMS et les blogs génèrent souvent des noms de page automatiquement à partir du titre, et éventuellement de la date de post en plus, si la chronologie est importante.

Voilà ce que je ferais pour générer un nom à partir d'un titre :
1 - Remplacer les lettres accentuées par leur version non accentuée et en profiter pour tout mettre en minuscules. Voir strtr
2 - Remplacer tous les autres symboles qui ne peuvent pas passer dans une URL, notamment les espaces, par, au choix, - ou _
3 - Supprimer les mots vides comme le, la, une, de, dans, pour, etc. pour améliorer un peu le référencement (pas sûr que ça ait vraiment un impact, je n'ai pas la science infuse)
4 - Réduire plusieurs - ou _ d'affilée en un seul; via regexp