2 votes

Gestion des URL descriptifs

J'ai remarqué que de nombreux blogs utilisent des URL qui ressemblent à ceci :

http://www.hanselman.com/blog/VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker.aspx

Je suppose qu'il s'agit d'une optimisation pour les moteurs de recherche.

Comment cette lecture se fait-elle à partir du modèle de données sous-jacent ? Cherchez-vous vraiment

VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker

dans la base de données ?

Dans l'affirmative, comment la description est-elle gérée ? S'il s'agit d'une clé, la règle veut-elle qu'elle ne puisse jamais être modifiée une fois qu'elle a été créée, sans rompre les liens web ?

4voto

zombat Points 46702

Vous avez raison de dire qu'il s'agit d'une optimisation pour les moteurs de recherche. Toutefois, il est préférable de séparer les mots individuels par des tirets ou des traits de soulignement.

Ces portions d'url favorables au SE sont souvent appelées limaces o limaces d'url . Un slug doit être unique dans votre application, et généralement la fonction qui les crée ou les vérifie doit en tenir compte.

Comme pour toute autre chose, il existe de multiples façons de mettre en œuvre un tel projet. En général, vous stockez une chaîne de texte concernant un élément de la base de données, par exemple le titre d'un article. Si vous ne souhaitez pas la stocker, vous pouvez la convertir dynamiquement en url slug au moment du chargement, ou vous pouvez enregistrer le titre réel et l'url slug au moment de l'insertion ou de la mise à jour, et utiliser l'url slug comme critère de sélection dans la base de données au moment du chargement de la page concernée.

Si vous voulez être très robuste avec votre application, vous pouvez enregistrer automatiquement un historique des mots-clés et générer des en-têtes "301 Moved Permanently" chaque fois qu'un mot-clé est modifié.

2voto

OverloadUT Points 1144

Généralement, lorsque l'article est créé, cette chaîne est stockée dans la base de données en tant que clé, oui. Certains moteurs de blog comme Wordpress vous permettent (en tant qu'auteur) de modifier manuellement cette chaîne, après quoi les liens vers l'ancienne chaîne ne fonctionneront plus.

Dans Wordpress, on appelle cela le "permalien", bien que les différents moteurs aient leur propre nom pour cela. Je ne pense pas qu'il existe un terme universel pour cela.

1voto

Malte Clasen Points 3989

Il existe différentes stratégies pour créer des URL compatibles avec les moteurs de recherche. Compte tenu de votre exemple d'URL, vous pourriez par exemple rechercher la chaîne entière ou utiliser la valeur de hachage C# comme clé (probablement non unique). Dans les deux cas, les liens vers cette page seront interrompus si le titre est modifié. Une solution consiste à intégrer une clé unique supplémentaire dans l'URL (voir amazon.com pour des exemples).

Si vous êtes intéressé par la façon dont dasBlog gère les URL, vous pouvez obtenir le code source complet à l'adresse suivante http://www.dasblog.info/ .

1voto

Dan Atkinson Points 6043

Il n'y a aucune raison pour que VirtualCamaraderieAPersistentVideoPortalForTheRemoteWorker ne soit pas une clé dans la table "posts", étant donné que même une clé vraiment un grand blog n'aura pas plus de quelques milliers de lignes dans la table des messages.

Si vous décidez de le réécrire, vous pouvez créer une redirection 301 pour cette url sans trop de dommages pour le référencement.

Mais, comme je l'ai expliqué dans les commentaires de votre question, l'impact de ce type d'url statique sur le référencement est le suivant n'est plus d'actualité . Le véritable avantage pour l'utilisateur est de disposer d'une structure visuellement plus facile à parcourir (url "piratables").

Google ne se soucierait pas de savoir si l'url disait :

hanselman.com/blog/index.aspx?id=123

o

hanselman.com/blog/foobar.aspx

Le classement serait le même, quoi qu'il en soit.

0voto

Sean A.O. Harney Points 8033

Lisez des informations sur les URL dynamiques et sur Apache mod_rewrite.

Vérifiez également ce mod_rewrite générateur de règles de l'extérieur.

Pour illustrer ce que mod_rewrite peut faire pour vous en matière d'URL descriptives, le permalien peut être considéré comme l'URL :

 http://www.somesite.com/catalog.php?cat=widgets&product_id=1234

Et le module de réécriture créera un texte beaucoup plus descriptif et plus simple :

 http://www.somesite.com/catalog/widgets-1234.html 

de manière dynamique, selon les besoins. Je ne sais pas si ces mappages sont mis en cache côté serveur pour une utilisation ultérieure, mais je n'imagine pas que le traitement des règles entraîne une surcharge énorme. Voici la règle qui a effectué la réécriture ci-dessus et qui est placée dans un fichier .htaccess :

 RewriteEngine On
 RewriteBase /
 RewriteCond %{QUERY_STRING} ^cat\=([^&]+)\&product_id\=([^&]+)$
 RewriteRule ^$ /catalog/%1-%2.html [R=301,

Cet exemple a été trouvé ici .

Générer dynamiquement une URL descriptive à la volée et lui faire servir le contenu du permalien ne prend pas beaucoup de temps. Je ne pense pas qu'ils s'inquiètent du stockage ou de la mise en cache des règles dans une base de données.

Il semble que les spécialistes du référencement recommandent vivement de créer un sitemap.xml pour aider Google à indexer ces pages générées de manière statique (éventuellement infinies, ou à la limite supérieure de la longueur de l'URL, qui n'est pas définie, mais les URL de plus de 2000 caractères ne fonctionneront pas dans de nombreux navigateurs). Tant que les règles sont déterministes, il pourrait tout aussi bien s'agir de permaliens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X