fr.mydomain.com vs mydomain.fr visant plutot la langue que le pays

Discussion dans 'Référencement international (langues, pays)' créé par kitten13, 10 Novembre 2010.

  1. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Bonjour,

    J'aurais besoin de conseil sur le lancement d'un site ecommerce multilingues ... Visant les pays/langues suivantes EN, FR, ES, IT, PL, NL.

    Je possède les extensions DNS (.COM, FR, ES, IT, PL, NL) pour ce projet.

    Chez ovh j'ai la possibilité de faire du multi-domaines et sous-domaines ... avec choix de ip du server par pays. (EN, FR, ES, IT, PL, NL)

    Ma question concerne plutôt les extensions .COM et .FR

    Vaut il mieux que j'attribue le .com pour l'anglais et que j'utilise des sous-domaines pour les autres pays/langues EX:

    - mydomain.com (EN principal)
    - fr.mydomain.com
    - etc ...

    OU

    - mydomain.com (EN principal)
    - mydomain.fr
    - etc ...

    Je n'ai pas de pays/langue principal, mon produit est destiner à tous ...

    Sachant que j'aimerais être visible un minimum pour les canadiens, belges, etc ... francophone ...

    Merci pour vos réponses ...
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Il convient probablement de ne pas mélanger pays et langues. Tes listes semblent être des listes de langues, plutôt que de pays (tu parles ensuite de la Belgique, du Canada...).

    Pour de nombreux sites, une structure en sous-domaine ou en sous-répertoire serait alors plus adaptée (la version française n'est pas pour la France, ce qu'un .fr impliquerait, mais pour les francophones). Mais comme tu fais de l'e-commerce, il faut ajouter la problématique des prix (devises éventuellement différentes, taxes différentes, frais de port différents, mentions légales/conditions générales éventuellement différentes, FAQ éventuellement différentes sur les problèmes de taxes à l'importation, etc.). Moi j'aurais tendance à conseiller soit un sous-répertoire ou sous-domaine par pays+langue, soit un domaine par pays + sous-domaine ou sous-répertoire par langue pour les pays multi-lingues (Belgique, Canada, Suisse, éventuellement US). L'avantage d'un domaine par pays, c'est que tu donnes plus "confiance" aux utilisateurs du pays en question. Mais tous les domaines ne sont pas forcément faciles à obtenir (un .ca par exemple ça devient difficile si tu n'es pas au Canada).

    Il se posera alors une problématique de duplicate content. Google dit qu'ils sont capables de gérer ce cas de figure, mais tu vas avoir beaucoup de monde qui va te dire (à tort ou à raison) le contraire.

    Jacques.
     
  3. oliviercd
    oliviercd Nouveau WRInaute
    Inscrit:
    6 Juillet 2010
    Messages:
    15
    J'aime reçus:
    0
    Bonjour,

    Pour la Belgique par exemple c'est un peu compliqué car il y a 3 langues, le français, le néerlandais et l'allemand :?
     
  4. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Merci pour vos réponses, j'ai donc opter pour un domaine principal + sous-domaines EX:

    Code:
    http://www.domain.com 
    http://fr.domain.com
    http://it.domain.com
    http://es.domain.com
    Mon probleme est de gérer la traduction via un fichier lang j'ai donc penser à ceci:

    Code:
    RewriteCond %{HTTP_HOST} !^www.domain.com$
    RewriteRule ^(.*)   http://www.domain.com/$1?lang=en  [L,QSA,R=permanent] 
    
    RewriteCond %{HTTP_HOST} !^fr.domain.com$
    RewriteRule ^(.*)   http://fr.domain.com/$1?lang=fr  [L,QSA,R=permanent] 
    
    RewriteCond %{HTTP_HOST} !^it.domain.com$
    RewriteRule ^(.*)   http://it.domain.com/$1?lang=it  [L,QSA,R=permanent] 
    
    RewriteCond %{HTTP_HOST} !^es.domain.com$
    RewriteRule ^(.*)   http://es.domain.com/$1?lang=es  [L,QSA,R=permanent] 
    Ou ceci:

    Code:
    RewriteCond %{HTTP_HOST} =domain.com 
    RewriteRule .* http://www.domain.com/$0?lang=en [L,QSA,R=permanent] 
     
    RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.domain\.com$ 
    RewriteRule .* http://%1.domain.com/$0?lang=%1 [L,QSA,R=permanent]
    Obliger les www pour le domaine principal mais interdire pour les sous-domaines + gestion de la traduction via la variable lang ...

    Je suis en mutua donc je peut pas jouer avec les virtualhosts etc ...
     
  5. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Euh...

    1. tu as fait l'impasse sur ce qu'on t'a dit précédemment sur la distinction langue/pays. Un pays n'a pas forcément qu'une langue, et une langue ne concerne pas forcément qu'un seul pays.

    2. Je ne comprends pas bien l'intérêt de tes rewriterules, qui à mon avis ne font pas du tout, mais alors du tout, ce que tu penses

    3. Faire un redirect (externe) vers une URL avec un paramètre lang ce n'est pas une bonne idée. Au pire, ça devrait rester purement "interne" (invisible de l'extérieur)

    4. Il est probablement nettement plus simple de juste récupérer $_SERVER['HTTP_HOST'] et d'en extraire la langue avec une regexp au début de chaque script php (probablement via un include). Ne pas oublier une valeur par défaut bien sûr.

    Jacques.
     
  6. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Oui est c'est bien pour cela que je pause la question ici, a savoir comment gérer les cas des visiteurs francophones situer dans divers pays ...

    J'ai revu le code est je procède comme ceci:
    Code:
    RewriteCond %{HTTP_HOST} =domain.com 
    RewriteRule .* http://www.domain.com/$0 [L,QSA,R=permanent] 
     
    RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.domain\.com$ 
    RewriteRule .* http://%1.domain.com/$0 [L,QSA,R=permanent]
    Puis ensuite j'extraie le sous-domaines en php pour attribuer un fichier lang ... EX:
    Code:
    $lang_uri = substr($_SERVER['HTTP_HOST'], 0, 2); 
    $lang = $lang.".inc.php"; 
    L'avantage des sous-domaines : c'est plus simple à gérer dans un seul script que de multiple répertoire, etc ... Et dans certain cas plusieurs résultats ressortent dans les serps ...
     
  7. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    On t'a déjà répondu plus haut. Pour un site e-commerce (avec donc au minimum des devises différentes dans de nombreux cas), la meilleure solution c'est un domaine, sous-domaine, ou répertoire (au choix) par combinaison de pays et de langue.

    Ma version préférée est:
    -www.example.fr (France, français)
    -fr.example.be (Belgique, français)
    -nl.example.be (Belgique, néerlandais)
    -fr.example.ca (Canada, Français)
    -en.example.ca (Canada, Anglais)
    -www.example.de (Allemagne, allemand)
    -www.example.at (Autriche, allemand)
    etc.

    Alternativement:
    -www.example.fr (France, français)
    -www.example.be/fr/ (Belgique, français)
    -www.example.be/nl/ (Belgique, néerlandais)
    -www.example.ca/fr/ (Canada, Français)
    -www.example.ca/en/ (Canada, Anglais)
    -www.example.de (Allemagne, allemand)
    -www.example.at (Autriche, allemand)

    Sinon, autres possibilités:
    -www.example.com/fr/
    -www.example.com/be/fr/
    -www.example.com/be/nl/

    Ou encore
    -www.example.com/fr/
    -www.example.com/be-fr/
    -www.example.com/be-nl/

    Ou même:
    -www.example.com/fr-fr/
    -www.example.com/be-fr/
    -www.example.com/be-nl/

    - tu ne gères pas correctement le cas "www", ni les langues non supportées
    - attention si tu "élargis" la façon dont tu récupères $lang, tu risques très fort la grosse injection. Pense donc à ajouter un peu plus de validation de ce que tu récupères.

    Jacques.
     
  8. kitten13
    kitten13 WRInaute discret
    Inscrit:
    30 Avril 2007
    Messages:
    171
    J'aime reçus:
    0
    Je réitère ma réponse jcaron:

    Voici sur quoi je me suis basé pour choisir les sous-domaines plutôt que les répertoires : http://www.referenceur.ma/fr/refere...aines-ou-dossiers-quel-est-le-meilleur-choix-

    Moi aussi, cependant toute les extensions ne sont pas libre voila pourquoi je me dirige vers quelque chose de plus généraliste ...

    En regardant un peut certain site de traduction comme --lingo--.com-- je m'aperçois que avec 4 ou 5 sous domaines (EN,IT,ES,FR) le site ressort dans plusieurs résultats par langues et pays...

    Après reste le cas ou multiplier autant de sous domaines va être un vrai casse tête pour moi niveau traduction vs contenu ... Difficile de faire un contenu différent pour une niche en français ex: FR, BE, CA, etc ...

    C'était juste un exemple rapide de l'idée que j'avais en tête, pour le cas du www on peut faire une comparaison avec un swicht et case défaut ou simplement un if, un autre exemple bête:
    Code:
    $lang_uri = substr($_SERVER['HTTP_HOST'], 0, 2); 
    if($lang_uri == 'ww') $lang_file =  "en.inc.php";
    else $lang_file =  $lang_uri.".inc.php";
    require_once('lang/'.$lang_file);
    En sachant que pour les sous-domaines le www est interdit (Lisibilité) mais pas pour le domaine principal.

    Un peu comme le site mentionner plus haut je vais faire un sélecteur de langue sous forme de drapeau ...

    Pour le cas d'école des injections ect ... effectivement, c'est la première chose que je gère quand je code ...