web-dev-qa-db-fra.com

Où est le meilleur endroit pour l'ID de la page dans une URL conviviale?

J'ai cherché dans le site, mais aucun ne répondait exactement à ma question, je le pose donc ici:

Laquelle de ces structures pour un user-friendlyurl est la meilleure en ce qui concerne search engines et l'expérience utilisateur:

 http://www.example.com/category/sub-category/sub-sub-category/article/ID

ou

 http://www.example.com/ID/category/sub-category/sub-sub-category/article

ou peut-être:

 http://www.example.com/category/ID/sub-category/sub-sub-category/article

Dans un autre mot, vaut-il mieux placer id à la fin de url ou au début, ou peut-être quelque part au milieu?

Et une autre question: est-il préférable d’ajouter une barre oblique à la fin du url?

Pour deviner combien de temps serait la url le nombre de mots dans chaque section de la url sont:

  1. Nom de la catégorie: 2 mots

  2. nom de sous-catégorie: 1 Word

  3. nom de sous-catégorie: 1 à 4 mots (moyenne de 2 mots)

  4. article-namae: Moyenne: 4 mots

Merci beaucoup

2
Ormoz

Il y a deux choses que vous devez garder à l'esprit:

  1. Plus facile à retenir, mieux c'est
  2. vous devez pouvoir supprimer chaque partie de l'URL sans la casser

Cela rend vos 3 exemples plutôt faciles:

A http://www.example.com/category/sub-category/sub-sub-category/article/ID
B http://www.example.com/ID/category/sub-category/sub-sub-category/article
C http://www.example.com/category/ID/sub-category/sub-sub-category/article

Les ID dans B & C sont trop proches du domaine. Si vous deviez supprimer "/ article" de l'URL, vous devriez voir la page de sous-sous-catégorie. L'identifiant du produit n'a plus aucun sens maintenant.

Cela laisse A. La règle 1 échoue ici (vous devriez pouvoir supprimer /ID de l'URL), mais il existe une solution simple:

http://www.example.com/category/sub-category/sub-sub-category/article-ID

J'ai remplacé la dernière barre oblique par un tiret. Vous pouvez facilement prendre l'identifiant avec quelque chose comme:

$pid = substr($url, strrpos($url,'-')+1); // find the last dash

Vous ne pouvez pas utiliser exploser ici et prendre la dernière valeur, cela romprait avec /example-string-123. Que vous utilisiez id-name ou name-id importe peu.


Offtopic: Je garderais la structure d'URL A, mais l'URL du produit que j'essaie de faire très court:

A http://www.example.com/article-ID
B http://www.example.com/ID-article
C http://www.example.com/Brandname-article-ID

Si le produit change de catégorie, l'URL reste la même. Moins de liens morts, moins de soucis et des URL plus courtes sont (souvent) meilleures. Si vous voulez faire la distinction un peu plus facile pour le code, vous pouvez ajouter .htm après l'URL, uniquement pour les produits.

Cela vous permet d'afficher les produits plusieurs fois s'ils correspondent à plusieurs critères. Supposons que vous ayez un superbe tshirt bleu (ABT), vous pouvez afficher ABT sur les aperçus /blue-stuff et /t-shirts.
C'est juste ma préférence après quelques années d'expérience.

3
Martijn