web-dev-qa-db-fra.com

Redirection basée sur la localisation de l'utilisateur

Je suis sur le point de rediriger mes utilisateurs français de mysite.com vers mysite.fr. Est-il possible d'utiliser enregistrements DNS CNAME ou devrais-je écrire quelques codes GEOLocation pour le faire?

Je vais apprécier toutes les autres idées.

Cordialement,
Shakib

3
Shakib Zabihian

Je n'ai jamais essayé d'utiliser un DN-Server pour la redirection en fonction de l'emplacement de l'utilisateur.

Questions importantes à poser:

Parlons-nous de contenus spécifiques à un pays ou de contenus spécifiques à une langue?

Avez-vous deux sites différents - et vous souhaitez rediriger les utilisateurs, qui accèdent à un ordinateur sur le territoire français et tapez "mysite.com" sur "mysite.fr"? Ou parlons-nous d’un grand système avec des pays (ou une langue?) Spécifiques?

En outre: quel que soit le mécanisme de redirection que vous appliquez, donnez à vos utilisateurs la possibilité d'aller ailleurs, au cas où votre redirection serait basée sur de fausses hypothèses! C'est une très mauvaise interface utilisateur, si vos utilisateurs sont finalement liés à une interface française, simplement parce qu'ils sont assis à hilton à paris et qu'ils ne parlent peut-être même pas français!

Regardons deux possibilités, basées sur l'hypothèse, que nous parlons d'un seul grand système:

a) Si votre site est, par exemple, un site de commerce électronique et que vous souhaitez que vos clients résidant en france visitent la section française! - qu'il est évident que vous devez rechercher leur emplacement réel - par exemple. basé sur l'IP. Cela signifie que vous ne redirigez pas nécessairement les utilisateurs français, mais les utilisateurs résidant en France. C’est la bonne solution si votre site est spécifique à différents endroits, tels que la France, les États-Unis, l’Allemagne ou autre.

b) Si c'est simplement pour des raisons linguistiques, vous voudrez peut-être connaître la langue préférée de l'utilisateur réel et le rediriger vers cette version de votre site, qui affiche le contenu dans la langue que l'utilisateur préfère. Vous redirigez maintenant les utilisateurs, par exemple utilisez les paramètres de langue française sur leur ordinateur, qui indiquent leurs préférences linguistiques. Ainsi, vous redirigerez vers votre site français les utilisateurs de tous les pays francophones et les utilisateurs disposant de paramètres de navigateur français mais résidant dans différents pays. C'est bien, si votre contenu n'est pas spécifique à un lieu mais traduit dans différentes langues.

Cela dit, il existe des solutions aux deux problèmes.

Pour le problème A, vous souhaitez rechercher l'adresse IP du visiteur du site et, en fonction de l'emplacement de cette adresse IP, rediriger l'utilisateur. La plupart des systèmes CMS auront des modules à cet effet: http://drupal.org/project/smart_ip/ avec http://drupal.org/project/ip2locale . Vous voudrez peut-être examiner leur code si vous développez votre propre système. Vous devriez trouver ce type de module pour tous les systèmes pertinents.

Pour le problème B, vous souhaitez rechercher les paramètres du navigateur. Ce type de négociation linguistique devrait faire partie de tout système CMS multilingue ...

J'examinerais également les implémentations, utilisées par Apple ou d'autres grands sites internationaux: ils ont un site .com pour tous les pays, mais redirigent les utilisateurs, qui tentent de visiter .de dans leur pays. Ils arrivent ensuite sur Apple.com/de/ - ce qui, à mon avis, est une bonne solution. Dans ce cas, je voudrais simplement rediriger toutes les visites directes via une URL spécifique à un pays vers la section pays (.fr-com/fr), ce qui pourrait également se produire au niveau du serveur - et non au niveau du système -, alors que tous les visiteurs sur .com seront redirigé vers la section en fonction de leur adresse IP ou de la langue de leur navigateur. Avec tout cela, une bonne langue ou une bonne navigation par pays (basée sur des cookies, par exemple) sont obligatoires - pour que les utilisateurs pris par erreur au mauvais endroit puissent trouver leur chemin ...

Maintenant, si vous avez deux sites différents et que vous souhaitez rediriger les utilisateurs vers un emplacement situé en dehors du site actuel qu'ils visitent, ce serait un peu différent. Faites-nous savoir, que nous pouvons penser à des solutions pour ce scénario.

4
ChrisZZ

Pourquoi vous ne pouvez pas simplement vérifier l'en-tête Accept-Language? Le navigateur l'envoie pour une raison. Si cela ne fonctionne pas, essayez d'obtenir des informations sur GEOlocation.

Et lorsque vous avez toutes ces informations, vous pouvez suggérer à l’utilisateur de rediriger vers la version française du site.

1
maszynka