Schéma d'URL pour une application Web à versions multiples
-
19-08-2019 - |
Question
Je recherche le meilleur schéma d'URL à utiliser pour une application Web comportant plusieurs versions, à savoir plusieurs langues et une version simplifiée pour les téléphones mobiles. Ces deux aspects peuvent être combinés. Il existe donc une version anglaise et une version mobile. , une version allemande et une version mobile, etc.
Objectifs (par ordre d'importance):
- Convivialité
- convivialité des moteurs de recherche
- Facilité de développement
Aspects à prendre en compte:
- À quoi devraient ressembler les URL?
- Comment l'utilisateur doit-il naviguer entre les versions?
- Quelle doit être la logique pour choisir automatiquement une version?
Je vais décrire mon concept ci-dessous, peut-être que certains d'entre vous ont de meilleures idées.
La solution
Mon concept actuel:
- À l'arrivée d'un nouvel utilisateur, l'application décide, en fonction des cookies (voir ci-dessous), de l'en-tête Accept-Language: et de la chaîne de l'agent utilisateur (utilisée pour identifier les navigateurs mobiles), de la version à afficher, mais ne l'indique pas l'URL (pas de redirections)
- La version anglaise non simplifiée est utilisée par défaut
- Des icônes bien visibles (drapeaux, téléphone mobile stylisé) permettent de choisir d'autres versions
- Lorsque l'utilisateur choisit explicitement une version différente, cela se traduit à la fois par une URL modifiée et par un cookie de navigateur.
- Le schéma de l'URL est / pour le " automatique " version, / en /, / de /, etc. pour la version linguistique, / mobile / pour la version simplifiée, / normal / pour la version non simplifiée, et leurs combinaisons, par exemple / mobile / en / et / normal / de /
- mod_rewrite est utilisé pour supprimer ces préfixes d'URL et les convertir en paramètres GET pour que l'application puisse les analyser
- le fichier robots.txt interdit / mobile / et / normal /
Avantages:
- Les différentes versions linguistiques sont toutes indexées séparément par les moteurs de recherche
- Les cookies aident, mais ne sont pas nécessaires
- Il y a de bonnes chances que les gens voient la version qui leur convient sans avoir à faire aucun choix
- L'utilisateur peut toujours explicitement choisir la version de son choix (cela rend le fichier / normal / URL nécessaire)
- Chaque version a une URL qui affichera exactement cette version lorsqu'elle sera transmise à d'autres
- / mobile / et / normal / sont ignorés par les moteurs de recherche; ils ne feraient que dupliquer le contenu.
Inconvénients:
- Nécessite l'utilisation intensive de mod_rewrite, que je trouve plutôt cryptique
- Les utilisateurs peuvent envoyer leur URL actuelle à une personne et cette personne, lors de sa visite, peut finir par voir une version différente, ce qui peut être source de confusion.
- Il y a toujours du contenu en double entre / et / en / - je ne peux pas refuser / dans le fichier robots.txt - dois-je faire confiance aux moteurs de recherche pour ne pas me pénaliser pour le contenu dupliqué exact sur le même domaine, ou pour interdire / en / et acceptez-vous que les personnes entrant dans / via un moteur de recherche puissent voir une version différente de celle trouvée dans le moteur de recherche?
Autres conseils
Je suggère personnellement les sous-domaines.
Je n'inclurais pas du tout le mobile - utilisez l'outil useragent pour le déterminer, et éventuellement un cookie si l'utilisateur souhaite voir le site complet sur son mobile (pensez à la façon dont Flickr et Google le font). Mais pour les langues, oui - langue principale chez http://mondomaine.com/ , les langues secondaires chez http://de.mydomain.com/ ou http://fr.mydomain.com/
Je ne vois pas pourquoi vous voudriez incorporer tout type d'informations de version, telles que des désignations spécifiques accept-language ou user-agent, dans le schéma d'URL. Le schéma d'URL doit indiquer uniquement le contenu. Le serveur doit examiner les différents en-têtes de requête pour déterminer comment extraire et / ou formater la réponse.