J'ai du contenu qui peut être consulté de différentes manières. Par exemple, mon contenu est avis et j'ai trois types d'avis:
/customer-reviews/11/slug.html
/third-party-reviews/11/slug.html
/products/99/reviews/11/slug.html
Un autre exemple serait les produits qui peuvent être vus de différentes manières:
/products/11/index.html
/categories/99/products/11/index.html
/suppliers/99/products/11/index.html
La chose à noter est que chaque ensemble de pages est alimenté à partir d'une seule table (critiques et produits respectivement). Maintenant, la plupart des sites Web ont une seule URL pour le même contenu, quelle que soit la "vue". Par exemple. Le profil IMDB de Christian Bale est http://www.imdb.com/name/nm0000288/
que vous regardiez la distribution de The Dark Knight ou à la recherche de personnes populaires nées le 30 janvier .
Donc, pour mon site Web, je prévois d'utiliser des URL comme celles-ci:
/reviews/11/slug.html?view=customer
/reviews/11/slug.html?view=third-party
/reviews/11/slug.html?view=products&id=99
/products/11/index.html?view=
/products/11/index.html?view=categories&id=99
/products/11/index.html?view=suppliers&id99
En fonction du paramètre de vue, je vais afficher un "fil d'Ariane" qui ramène l'utilisateur à son lieu d'origine et fournir une sorte d'indication visuelle de la hiérarchie hiérarchique.
Est-ce une bonne ou une mauvaise approche? Et y a-t-il une meilleure solution?
Les moteurs de recherche, au moins Google, ne s'en soucient pas. Si vous avez une structure d'URL vierge (pas de duplication via des URL telles que/productname/colorname/&/colorname/productname /), ils n'auront généralement aucun problème à utiliser des éléments de chemin d'URL ou des paramètres d'URL. Les deux types d'URL existent depuis "toujours", vous n'avez donc pas à vous en soucier.
Mon conseil serait de vous concentrer principalement sur l'utilisateur et de vous laisser guider par une telle décision. Qu'est-ce qui fonctionne le mieux pour l'utilisateur? Et, comment les utilisateurs internationaux (autres que l'anglais) seront-ils en mesure de faire face (s'ils font partie de votre public cible)?
Points importants à garder à l’esprit quand vous choisissez un schéma d’URL
Je conviens avec M. Déception que l’utilisation de segments d’URL est la meilleure solution. Et je pense que vous finirez par vous retrouver avec des URL plus courtes. Les chaînes de requête sont plus verbeuses. Je voudrais utiliser des URL comme ceci:
/reviews/11/slug/customer/
/reviews/11/slug/third-party/
/reviews/11/slug/product/99/
/products/11/
/products/11/category/99/
/products/11/supplier/99/
C'est discutable si vous devez finir vos URL avec une barre oblique ou non.
J'aime votre utilisation des chaînes de requête, mais je suggérerais également d'avoir une version "par défaut" qui signifie en réalité aucune chaîne de requête. Lorsque l'URL est traitée, la chaîne de requête par défaut peut ensuite être ajoutée via une réécriture d'URL pour traiter la demande. Si vous utilisez un framework MVC, cela peut être géré pour vous par des routes par défaut.
Vous pouvez également utiliser des liens URL canoniques pour atténuer davantage ce problème.