aspeum Posté 28 Mai 2007 Posté 28 Mai 2007 (modifié) Je suis actuellement entrain de construire un site sous MODx. Le module de rewriting réécrit entièrement l'URL, c'est-à-dire qu'il ne s'appuie QUE sur le titre de l'article (et pas sur l'id de l'article). Par exemple, prenons un article : id = 214 / titre = "Il fait beau en mai" => L'URL sera : il-fait-beau-en-mai.html Intuitivement, je pensais que ça serait quelque chose comme 214-il-fait-beau-en-mai.html (histoire de récupérer l'id de l'article, peu importe la suite). Parce que sinon, le risque, c'est que si je change le titre de mon article, tous les liens qui pointent vers cette page soient obsolètes. Qu'en pensez-vous ? Quelle est la pratique courante, en matière d'URL ? Merci pour vos avis. Modifié 28 Mai 2007 par aspeum
snwoman49 Posté 28 Mai 2007 Posté 28 Mai 2007 (modifié) Salut, Il faut absolument qu'il y ai l'id de l'article pour identifier cet article. Voilà la ligne .htaccess que j'utilise : RewriteRule ^article_meteo-(.*)-(.*)00.html$ mapage.php?idt=$1&id=$2 [L] Ce qui te donne un url de ce type : article_meteo-Forts_orages_en_Allemagne_et_en_Grece___8_morts-2700.html (Les deux zéro à la fin de l'id c'est pour que Google News indexe les articles) Par contre pense à supprimer les caractères qui ne marchent pas dans l'url ( ',^ etc..). Modifié 28 Mai 2007 par snwoman49
captain_torche Posté 28 Mai 2007 Posté 28 Mai 2007 Je suis en train de faire un système de ce genre, que j'ai un peu décrit sur ce sujet. Dans le principe : - Je conserve un historique des urls de page - La page de traitement regarde les infos associées à cette url : si l'url est la dernière en date, elle affiche la page, sinon elle effectue une redirection 301 vers la dernière url en date.
davidm Posté 28 Mai 2007 Posté 28 Mai 2007 Puisqu'on parle de MODx et d'un projet sur lequel je travaille aussi... Je n'ai pas encore creusé ce plugin (et donc je ne l'ai pas encore mentionné auprès d'aspeum) mais MODx a un plugin qui s'appelle "SEO Strict URLs" qui se base sur les principes évoqués par Captain Torche dans l'autre fil de discussion (les tweak d' .htaccess générique proposé pour MODx sont là) Lorsque les URLs simples sont activées dans MODx les adresses suivantes donneront la même page : http://monsite.com/doc_id http://monsite.com/doc_id/ http://monsite.com/doc_id.suffix http://monsite.com/doc_id.suffix/ http://monsite.com/alias http://monsite.com/alias/ http://monsite.com/alias.suffix http://monsite.com/alias.suffix/ Donc par rapport à l'exemple /24 donnera le document "Il fait beau en mai", de même que 24.html ou encore il-fait-beau-en-mai (sans .html)... Le plugin SEO Strict URL redirige les utilisateurs et moteurs de recherche via une redirection 301 vers une seule et même URL, choisie via les options de configuration. Quelques exemples : # /index.php?id=8 sera redirigé vers /alias.html via une 301 # /page et /page/ sera redirigé vers /page.html (ou l'inverse, question de config du plugin) # domain.com url sera redirigé vers www.domain.com url (via ajout à l' .htaccess cette fois) # Si on désactive les URLs simples, le plugin redirige /page.html et /page vers /index.php?id=48 (exemple, d'autres choix de config sont possibles) # Redirige accueil.html vers / (racine) # Si une page est un dossier dans MODx elle s'affiche comme /dossier/ comme d'habitude mais dossier.html redirige vers /dossier/ # Redirection possible de /dossier vers /dossier/
KaRaK Posté 28 Mai 2007 Posté 28 Mai 2007 Bonjour, Je ne connais pas vraiment modX même si j'ai souvent salivé devant les features de la bête et les posts de david. En ce qui concerne le fait de mettre des ID dans les urls, cela n'est absolument pas obligatoire. D'un point de vue du positionnement dans les SERP cela est même un avantage. En revanche, cela fait normalement consommer plus de ressource au serveur que lorsque l'on utilise un ID et l'affichage est peut être légèrement ralenti. Dans quelle mesure ? Je ne le sais pas. Pour ta crainte en cas de changement de title, cela dépend comment est codé le plugin. Si nous prenons l'exemple de Blogger, la plate forme de Google, les urls des billets ne contiennent pas d'id. Elles sont nommées en fonction du premier titre attribué et ne changent pas en cas de changement de titre.
davidm Posté 28 Mai 2007 Posté 28 Mai 2007 Merci KaRak ça aide à affiner Normalement le comportement par défaut de MODx est que l'alias reste inchangé bien sûr si on change le titre. Le souci - légitime - de Rémi est qu'il y ai divergence alors entre l'alias et le titre de l'article. La question c'est dans combien de cas de figure va t-on changer le titre d'un article déjà publié ? (car s'il n'est pas publié, il sera inacessible aux moteurs, donc changer l'alias est sans conséquence). Je n'ai encore jamais été confronté à cette problématique et comme le souligne Heliotrope sur les forums de MODx, celui-ci ne gère pas les révisions d'URL (vous connaissez un CMS qui fait ça vous ?).
Lanza Posté 28 Mai 2007 Posté 28 Mai 2007 Salut, Il faut absolument qu'il y ai l'id de l'article pour identifier cet article. Rien n'empêche cet id d'être une chaîne de caractères...
snwoman49 Posté 28 Mai 2007 Posté 28 Mai 2007 (modifié) Rien n'empêche cet id d'être une chaîne de caractères... C'est plus embêtant à mettre en place et à vérifier qu'un nombre..., comment tu fais si tu as deux fois le mêmes titre ? Nombre qui d'ailleurs ne changera rien du tout dans votre référencement. C'est se compliquer la vie que de mettre un titre comme paramètre pour retrouver un article, alors qu'un id fait ça très simplement. Modifié 28 Mai 2007 par snwoman49
Anonymus Posté 28 Mai 2007 Posté 28 Mai 2007 Si, ca peut changer dans certains cas : Si tu as une url telle que : /155-le-referencement.html ton 'conccurent' pourrait bien tester le /156-le-referencement.html et s'il tombe sur l'article '156', autrement dit s'il s'apercoit que la chaine de caractère après le nombre est là pour faire joli uniquement, alors... Il pourrait faire des liens vers /155-truc.html /155-machin.html /155-bidule.html etc.. Et tu te retrouverais avec quantité de pages en duplicate... alors qu'elles n'ont pas de raisons d'être. Autre chose : Quelqu'un qui voudrait faire une moulinette pour récupérer ton contenu n'aurait pas à se soucier de faire un crawler.. Une simple boucle suffirait /155-je-te-recup-ton-contenu.html /156-je-te-recup-ton-contenu.html etc... Mais les gens ne sont pas comme ca A l'inverse un id suffit amplement. Mais personne n'oblige à mettre un id numérique. Une chaine de caractères fait ca très bien aussi D'ailleurs, ca peut être assez utile, dans certains cas qui n'ont rien à voir avec le référencement : en mode déconnecté multi utilisateur par exemple
snwoman49 Posté 28 Mai 2007 Posté 28 Mai 2007 (modifié) Salut, Si tu as une url telle que : /155-le-referencement.htmlton 'conccurent' pourrait bien tester le /156-le-referencement.html et s'il tombe sur l'article '156', autrement dit s'il s'apercoit que la chaine de caractère après le nombre est là pour faire joli uniquement, alors... Il pourrait faire des liens vers /155-truc.html /155-machin.html /155-bidule.html etc.. Et tu te retrouverais avec quantité de pages en duplicate... alors qu'elles n'ont pas de raisons d'être. Tu vérifies que ton titre correspond avec l'id dans ta base SQL, ca va évite comme ça les 156 157 etc.. Sinon créer une key textuelle unique avec le timestamp et d'autres données est une bonne idée. Modifié 28 Mai 2007 par snwoman49
captain_torche Posté 28 Mai 2007 Posté 28 Mai 2007 Tu vérifies que ton titre correspond avec l'id dans ta base SQL, ca va évite comme ça les 156 157 etc.. Et dans ce cas : - l'id ne sert plus à rien, vu que le texte est dorénavant essentiel - au moindre changement de titre, le lien amènera à une erreur
aspeum Posté 28 Mai 2007 Auteur Posté 28 Mai 2007 Et moi qui espérais naïvement trouver une réponse simple ! Merci à tous pour vos interventions. J'avoue que j'ai, du coup, du mal à y voir clair... Connaissez-vous des exemples de sites qui, à vos yeux, ont magistralement réglé cette question ? (j'entends par là des sites chargés en contenus, contraints de gérer proprement leurs pages d'archives) Toute fois, davidm soulève un point intéressant : peut-être qu'il s'agit de beaucoup de complications pour quelque chose qui arrive peu (à savoir changer le titre d'un article).
snwoman49 Posté 28 Mai 2007 Posté 28 Mai 2007 Et dans ce cas : - l'id ne sert plus à rien, vu que le texte est dorénavant essentiel - au moindre changement de titre, le lien amènera à une erreur Il suffit de stocker le premier titre dans un champ titre_lien et n'utiliser que celui là dans le lien, après on change autant qu'on veut le titre mais le titre lien lui ne bouge pas. L'id est essentiel puisque c'est lui qui permet de rechercher la news et d'éviter d'avoir 2 urls ou plus identiques, le titre est juste là pour vérification, mais on peut tout aussi bien utiliser une clé unique de quelques caractères (5/6), le titre ne sert alors plus à rien.
davidm Posté 28 Mai 2007 Posté 28 Mai 2007 Basiquement c'est ce que MODx fait snwoman49 : le titre lien (i.e l'alias) est inchangé même si on change le titre parceque si le champs alias a une valeur celui-ci ne sera pas modifié même si on change de titre : il n'y a donc pas de risque d'un document soit obsolète. Le souci est donc sémantique : c'est à dire qu'aspeum souhaite que l'alias soit actualisé (ce qui est logique j'en convient) et corresponde au titre. Le comportement souhaité (si j'ai bien compris) c'est en fait que l'alias n'ai aucun rôle dans l'accès à la resource (ici le document). Seul l'ID serait pris en compte. Et 214-toto.html serait identique à 214-il-fait-beau-en-mai.html ou 214-n-importe-quel-autre-alias.html (ce qui par contre poserait des problèmes de duplicate content comme indiqué plus haut). Et il ne faut pas négliger le risque de se retrouver dans le bac à sable de Google lorsqu'on a des duplicate content... En l'état actuel MODx gère l'accès à une page comme indiqué plus haut : /mapage/ mapage.html 214 214.html et le plugin SEO Strict URLs se charge des redirections 301 (seule une URL devient valide et le reste est redirigé via 301). Maintenant si on veut utiliser un schéma d'URL comme décrit par aspeum, d'après Ryan Thrash un des core dev de MODx c'est possible, mais il faut développer un plugin qui combine les exigences ci-dessus tout en gérant les redirections 301 (en gros, on aurait une seule URL valide et le reste serait redirigé). Mais reste à savoir combien de temps (et aussi à quel coût) cela serait possible...
Lanza Posté 28 Mai 2007 Posté 28 Mai 2007 Et moi qui espérais naïvement trouver une réponse simple ! Merci à tous pour vos interventions. J'avoue que j'ai, du coup, du mal à y voir clair... Connaissez-vous des exemples de sites qui, à vos yeux, ont magistralement réglé cette question ? (j'entends par là des sites chargés en contenus, contraints de gérer proprement leurs pages d'archives) Les moteurs de blog, par exemple, qui stockent leurs url sous la forme /annee/mois/jour/titre ou titre tout court, en laissant l'utilisateur corriger en cas de doublon. Toute fois, davidm soulève un point intéressant : peut-être qu'il s'agit de beaucoup de complications pour quelque chose qui arrive peu (à savoir changer le titre d'un article). Et rien n'empêche de garder l'ancien titre comme id. Cool URLs don't change
snwoman49 Posté 28 Mai 2007 Posté 28 Mai 2007 (modifié) Le souci est donc sémantique : c'est à dire qu'aspeum souhaite que l'alias soit actualisé (ce qui est logique j'en convient) et corresponde au titre. Dans ce cas là, il y a risque de Duplicate Content, si google passe très souvent sur son site, il indexera plusieurs fois le même contenu (si le titre de page change). Modifié 28 Mai 2007 par snwoman49
Lanza Posté 28 Mai 2007 Posté 28 Mai 2007 Bénon puisque l'autre renverra une erreur 404, donc devrait se faire virer de l'index. Et d'ailleurs, si le titre change, il y a fort à parier que le contenu aura suffisamment changé lui aussi pour éviter le duplicate content.
captain_torche Posté 28 Mai 2007 Posté 28 Mai 2007 Ou alors, pour éviter la péremption des urls, on effectue une redirection 301. On évite ainsi également le duplicate content.
snwoman49 Posté 29 Mai 2007 Posté 29 Mai 2007 Bénon puisque l'autre renverra une erreur 404, donc devrait se faire virer de l'index. Oui mais le bot pourra avoir dans son index deux pages qui sont égales, puis la page ne pourra pas amener une page d'erreur 404 comme apanche en fait (vu que c'est une page php dissimuler, enfin on peut toujours fait le même code html qu'une page générée par apache..). Et d'ailleurs, si le titre change, il y a fort à parier que le contenu aura suffisamment changé lui aussi pour éviter le duplicate content. Sauf qu'on peut changer le titre si on a fait une faute, ou pour apporter une plus grande précision. Ou alors, pour éviter la péremption des urls, on effectue une redirection 301. On évite ainsi également le duplicate content. Va falloir écrire dans .htaccess avec le script alors, s'il écrit beaucoup de news, ca va faire un fichier vachement long. Une petite question aspeum, pourquoi souhaites tu changer le nom des news que tu as déjà écrites ?
captain_torche Posté 29 Mai 2007 Posté 29 Mai 2007 Pas la peine d'écrire dans un .htaccess à chaque fois : tu peux aussi utiliser un htaccess général qui redirige vers une page de traitement qui elle, se charge de ces vérifications.
aspeum Posté 29 Mai 2007 Auteur Posté 29 Mai 2007 Une petite question aspeum, pourquoi souhaites tu changer le nom des news que tu as déjà écrites ? Bonne question ! Je viens d'ailleurs d'y répondre sur le forum de MODx (en anglais). En fait, je suis en phase de finalisation d'un site, et j'essaye encore beaucoup de choses, en ce qui concerne le contenu et son organisation. Du coup, je change tout le temps les titres, pour essayer différentes longueurs, différents tons, différents reformulations, etc. Mais - et c'est une question de davidm qui m'en a fait prendre conscience - ce n'est pas vraiment le reflet de ce qui se passera une fois que le site sera en ligne. Peut-être que ça arrivera que j'ai à reformuler un titre, mais ça sera extrêmement rare, en fait. Du coup, mon problème de départ disparait, je crois
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant