indexation de site multilangue

Nouveau WRInaute
bonjour,
j´ai enfin compris pourquoi mon site multilangue n´etait indexé dans google que pour la langue par defaut (etant en php avec un cookie de langue).
on m´a conseillé de creer 4 sous-domaines
es.monsite.com,
fr.monsite.com
en.monsite.com
de.monsite.com
en plus du www.monsite.com, qui iront a la meme page mais ou je pourrais recuperer en php les 2 premières lettres de l´URL pour la langue.
mais certains points restent un peu obscurs:

1) google ne penalise pas les sous domaines, comme il le fait avec les pages perso qui n´ont pas de domaine propre?
2) si je l'indexe dans des annuaires, selon la langue de l´annuaire je mettrais le sous-domaine adequat, mais alors mon pagerank va etre divisé entre ces 4 sous domaines, plus le www? ou alors mettre toujours le www, mais on entrera pas directement sur la bonne langue?
3) que laisser sur le www.monsite.com?
- la langue par defaut, anglais par exemple (serait equivalent a en.monsite.com)?
- une redirection javascript vers un des sous-domaines selon la langue du navigateur?
- une page d´acceuil avec juste les drapeaux des langues?
- une page pleine de mots clés presentant sucessivement le site dans chacune les 4 langues, avec un lien pointant vers chacun des sous-domaines?

merci pour vos conseils..
 
WRInaute impliqué
moi j'ai mis ca sur la page www.monsite.com

Code:
$Langue = substr($HTTP_ACCEPT_LANGUAGE, 0, 2);
if (!$lang and !$sel){

if ($Langue == "en")
{
Header("HTTP/1.1 302 Moved Temporarily");
Header("Location: http://www.berberber.com/en");
}
elseif ($Langue == "de")
{
Header("HTTP/1.1 302 Moved Temporarily");
Header("Location: http://www.berberber.com/de");
}
elseif ($Langue == "es")
{
Header("HTTP/1.1 302 Moved Temporarily");
Header("Location: http://www.berberber.com/es");
}
elseif ($Langue == "fr")
{
Header("HTTP/1.1 302 Moved Temporarily");
Header("Location: http://www.berberber.com/fr");
}else
{
Header("HTTP/1.1 302 Moved Temporarily");
Header("Location: http://www.berberber.com/en");
}

}

et apres
en xhtml sur chaque page, (à adapter etc.)
Code:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?echo $lang;?>">


et google reference très bien, avec les langues et tout, mais comme il y a toujours un lien vers www.monsite.com, la page d accueil obtient le plus grand PR (), et est avant les autres dans google, ne pas oublier de faire des liens vers les pages des autres langues
 
Nouveau WRInaute
fr.monsite.com
en.monsite.com
de.monsite.com
exactement. je ne pense pas que Google fasse le lien entre les trois, il en compte donc trois séparément. N'oublie pas que les liens qui pointent sur ton site entrent en ligne de compte dans ton positionnement, même si le langage n'est pas le même.
 
Nouveau WRInaute
bon, alors en laissant tomber les sous-domaines:
si j'ai bien compris, quand quelqu'un arrive sur www.monsite.com, il faut:
- recuperer la langue dans le $HTTP_ACCEPT_LANGUAGE, ou anglais par defaut
- rediriger avec une redirection temporaire 302 vers cette langue:
www.monsite.com/fr/index.php

je croyais que google indexait seulement la destination de la redirection? alors "www.monsite.com" ne serait pas indexé mais "www.monsite.com/fr/index.php" oui? ou alors c'est a ça que serd le 302 au lieu de 301? si qq peut m'expliquer un peu plus..

- ensuite, il faudrait donc que je fasse de l'URL rewriting pour le transformer en
www.monsite.com/web/index.php?lang=fr
sachant que je n'ai qu'un programme php commun a toutes les langues ?
redirection + url rewriting, ce n'est pas trop pour google?
 
WRInaute passionné
evaness a dit:
redirection + url rewriting, ce n'est pas trop pour google?

Non si tu fait bien de url rewriting sur le résultat de ce que va donner la redirection.
Mais pourquoi ne pas enlever la redirection, puisque'elle n'est que temporaire.
Le .htaccess de la racine renvoie vers /fr/
Dans /fr, il peut aussi y avoir un .htaccess pour completer et faire l'url rewriting des pages qui ne viennent pas du répertoire parent.
Ce que je fait de mon coté c'est un R=301 à la racine et l'url rewriting sur dans le répertoire cible.
Tu peux aller voir sur humour ou tu attéri à la racine et repart vers le bon répertoire
kmacleod
 
Nouveau WRInaute
Ma soluce

L'url
http://www.monsite.net/index.php?rub=sport_fr&p=velo
écrite en php utilise les pseudos frames, elle affiche le contenu du répertoire http://www.monsite.net/sport/fr/velo.php
Le underline concatène deux paramètres car google ne référence pas au delà de 2.
la page index.php contient la ligne :
list($rub1,$lang) = explode("_",$rub);
pour retrouver à la lecture,les deux paramètres rubrique et langue précédents.
Pour google, il n'y a qu'un répertoire.
C'est une possibilité...
 
WRInaute impliqué
Une solution est dans ton repertoire /fr/
tu mets un index avec
Code:
$lang="fr"
et
Code:
  include '../index.php'
 
Nouveau WRInaute
berberber a dit:
Une solution est dans ton repertoire /fr/
tu mets un index avec
Code:
$lang="fr"
et
Code:
  include '../index.php'
comment fera la page d'accueil index.php pour aller chercher dans le répertoire /fr/ ?
$lang="fr" est donné par défaut dans la page d'accueil par le code :
Code:
$lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2);
mais il faut laisser la possibilité de changer de langue (ne serait-ce que pour le référencement Google).
 
WRInaute impliqué
il est vrai que je fonctionne tjrs avec des bases de données, mais par rapport à ce que je comprends de tes besoins voila ma reponse :
dans monsite.com/index.php tu mets

comme dans ma premiere reponse(avec
) et apres, tu peux toujouirs mettre le contenu avec ./$lang/contenu.jpg par exemple l'avantage du include est que l'utilisateur voit monsite.net/fr/....
et on peut toujours changer de langue en faisant des liens vers monsite.com/es/.... par exemple.
Il est difficile d'etre clair si tu ne donne pas plus de details comment tu veux organiser ton site.[/code]
 
Nouveau WRInaute
je reprend pour faire une synthèse :

Actuellement sur mon site en français uniquement, j'ai un repertoire /dynamic qui contient mes différents scripts PHP qui se localise tout seul à partir d'un paramètre lang=fr ou lang=en. Si le paramètre n'est pas présent la langue par défaut est l'anglais.

Pour pas tout casser, J'aimerai bien rajouter un nouveau repertoire pour chaque langue du type /fr /en et j'aimerai avoir une url rewriting qui traduise pour faire pointer vers les scripts de /dynamic mais en ajoutant le paramètre lang=<nom du repertoire>. Attention il faut aussi transmettre les eventuels autres paramètres.

Avec les règles du style :
Code:
RewriteRule ^/fr/(.*)$ /dynamic/$1?lang=fr
RewriteRule ^/en/(.*)$ /dynamic/$1?lang=en

Est ce faisable et comment (dans le détail car j'ai jamais fait) ?
 
Discussions similaires
Haut