我的网站有两种语言:法语和英语。我选择的解决方案有效,但给我带来了麻烦。我使用 session 是为了保持“干净”的 url,这在英语和法语中是相同的。
我的解决方案:
要选择语言,我使用 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 参数仅更改 session 变量并重定向到网页:
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 中,我的网站是英文的。 我怎样才能使网站以两种语言编入索引?
最佳答案
您必须为语言使用额外的文件夹。您可以使用 example.com/fr 获取法语内容,使用 example.com/en 获取英语内容。
对于 Google 抓取机器人来说,您可以看出该网站是多语言和多区域的。根据您的目的编辑此 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” />
关于php - 使用 $_SESSION 的多语言网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19570279/