多语种网站使用$ _SESSION

时间:2013-10-24 15:34:48

标签: php seo multilingual

我的网站有两种语言:法语和英语。我选择的解决方案正在起作用,但却给我带来了麻烦。我使用session来保持一个“干净”的网址,这在英语和法国都是一样的。

我的解决方案:

要选择语言,我使用IP找到用户,如果不在法国,我设置

 $_SESSION['language'] = "ENG"

否则,

 $_SESSION['language'] = "FRA"

然后我包含我的文件words.php,其中包含所有文本:

if( $_SESSION['language'] == "ENG")
{
   $word1 = "hello"
   $word2 = ....
}
else
{
   $word1 = "bonjour"
   $word2 = ....
}

最后在我的网站上,我有几个echo $word1;

要更改语言,我有两个链接(每种语言一个)到一个网页language.php,其中的get参数只是更改会话变量并重定向到网页:

if($_GET['l']=="1")
{
    $_SESSION['language'] = "FRA";

    header('Location: ' . htmlspecialchars($_SERVER['HTTP_REFERER']));
}
elseif($_GET['l']=="2")
{
    $_SESSION['language'] = "ENG";
    header('Location: ' . htmlspecialchars($_SERVER['HTTP_REFERER']));
}

我的问题: 我的主要问题是谷歌只用英语索引我的网站(猜测因为爬虫的IP不在法国?)。在google.fr和google.com上,我的网站是英文的。 如果网站以两种语言编入索引,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您必须为语言使用其他文件夹。您可以使用example.com/fr获取法语内容,使用example.com/en获取英语内容。

你可以告诉这个网站是谷歌抓取机器人的多语言和多区域。为您的目的编辑此HTML代码。

<link rel=”alternate” href=”http://example.com/en-gb” hreflang=”en-gb” />
<link rel=”alternate” href=”http://example.com/en-us” hreflang=”en-us” />
<link rel=”alternate” href=”http://example.com/en-au” hreflang=”en-au” />
<link rel=”alternate” href=”http://example.com/” hreflang=”x-default” />
相关问题