2010-01-02 8 views
0

J'ai un site Web entièrement en français. Je prévois d'avoir une version anglaise depuis quelques mois. Tout fonctionne bien, les gens peuvent changer de langue et la session gère leur langue. La problématique est que maintenant j'ai acheté un domaine différent du français et je suppose qu'il faudra pointer vers le même sous-domaine de l'hôte.2 adresses IP pour 1 site Web

Je suppose que je vais devoir faire du code pour vérifier le nom de domaine et si l'utilisateur arrive sur le serveur avec l'anglais pour passer la session à la langue anglaise sinon pour utiliser la langue française. Ai-je tort ou pas?

Je pense que je vais procéder de cette façon, mais beaucoup d'autres parties du site pourraient être complètement différentes comme les annonces et les images. Est-ce que la meilleure façon de gérer le site Web multilingue est de faire beaucoup de comparaison de la langue pour ces annonces et images? ou de faire une copie du site Web sur un autre sous-domaine et de lier le nouveau domaine au nouveau dossier (je pense vraiment que la duplication sera pire à long terme).

Tout conseil serait appreaciate.

(Les deux questions dans cette question sont en gras)

+0

Voulez-vous dire que vous avez acheté un nouveau nom de domaine? –

+0

@Daok: J'ai mis à jour votre question afin que la terminologie ait plus de sens. DNS est uniquement utilisé pour convertir un nom de domaine chaîne en adresse IP avant l'envoi des paquets. –

+0

Oui, vous ne pouvez pas vraiment "acheter une adresse IP". Vous pouvez acheter un domaine et vous pouvez acheter un serveur virtuel avec une adresse IP. Pouvez-vous clarifier? – jpsimons

Répondre

1

Chaque site que j'ai construit pour supporter plusieurs langues détectées la langue de l'utilisateur, puis stocké dans leurs informations de session. La façon de détecter leur langue dépend de vous (de leur adresse IP, par défaut à une langue, etc.), mais assurez-vous de fournir à l'utilisateur un moyen facile de changer de langue. Ensuite, sur la base des informations de session, nous mettrons à jour la copie du site (ex., Mettre en place une traduction différente), l'expérience (par exemple, afficher uniquement les produits ou les actualités de cette langue), etc

du site sur différents [sous-] domaines est une option viable, bien que je n'aime pas: vous devrez soutenir et publier dans tous ces différents domaines.

Vous pouvez également définir la variable de session si l'utilisateur provient de votre nouveau domaine. Juste les deux domaines pointent vers le même endroit.

+0

Dois-je vérifier l'URL et modifier la Session ou si le changement d'utilisateur est la langue le rediriger automatiquement vers la bonne URL? –

+0

Je détecterais l'URL (ex., En.example.com), définirais la variable de session, puis redirigerais vers le domaine actuel (par exemple www.example.com). Aucun contenu réel ne se trouve dans le sous-domaine des paramètres régionaux, il est simplement utilisé pour basculer. Votre menu de commutation locale est alors juste une liste de liens vers des sous-domaines (en.exemple.com, fr.exemple.com, etc.). Vous pouvez appliquer le changement de langue à n'importe quelle demande d'URL qui n'est pas pour le sous-domaine www (en supposant que vous transmettiez example.com à www.example.com). Si vous ne reconnaissez pas le sous-domaine, transférez-le dans votre langue par défaut. –

2

Si ce que vous entendez est un nouveau nom de domaine, le pointer vers le même serveur que votre premier domaine, et faire la vérification de la langue (ou tout ce qui est nécessaire) dans le script PHP:

if ($_SERVER["HTTP_HOST"] == "my_first_domain_name.fr") 
{ // use french site } 
elseif ($_SERVER["HTTP_HOST"] == "my_second_domain_name.fr") 
{ // use english site } 

vous pourriez pensez aussi à une solution qui divise le contenu français dans un répertoire nommé /fr, et le contenu anglais dans /en.

1

Vous devriez viser à dupliquer le moins possible. Dupliquer votre site conduira à des problèmes de maintenabilité à l'avenir.

Vous pouvez pointer les deux noms de domaine sur la même adresse IP de serveur et avoir un code côté serveur conditionnel pour déterminer le contenu servi à l'utilisateur.

En PHP, la variable $ _SERVER ['SERVER_NAME'] est renseignée avec le nom du serveur à partir de la requête http du client (par exemple, "google.com"). Si les utilisateurs accèdent au même script php via différents noms de domaine, vous pouvez utiliser la valeur de ceci pour décider du contenu à présenter (par exemple, avoir un modèle html, avec le contenu pertinent renseigné à partir de la base de données selon le site).

En termes d'annonces, vous pouvez faire la même chose. Quelque chose comme google ads prendra probablement soin de cela pour vous.

Plus généralement, nous parlons de virtualhosts ici. Les méthodes varient selon les spécificités du problème, la plate-forme, les contraintes d'hébergement, etc.

De nombreux sites basent le choix de la langue par défaut (et les publicités, les devises utilisées etc) sur geoip, retombant à un certain défaut.

+0

en fait, $ _SERVER ['HTTP_HOST'] pourrait être un meilleur pari que $ _SERVER ['SERVER_NAME'], pour les raisons indiquées ici: http://shiflett.org/blog/2006/mar/server-name-versus- http-host – user242275

0

Il existe de nombreuses façons de couper ce cookie. Notez que puisque les sessions sont contrôlées par des cookies (par défaut au moins), vos utilisateurs auront différentes sessions en fonction du domaine qu'ils demandent.

Questions connexes