php - 使用 $_SESSION 的多语言网站

标签 php seo multilingual

我的网站有两种语言:法语和英语。我选择的解决方案有效,但给我带来了麻烦。我使用 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/

相关文章:

c# - 为 mvc3 webapplication 自动生成规范

c# - 用于从文本文件中读取意大利语字符的正确编码

php - Zend 框架中的多语言站点

delphi - 如何使用Delphi内置的多语言支持?

php - 如何使用Kubernetes运行一个简单的PHP Hello World应用程序

php - 插入/更新问题(相同记录重复,不能再输入)

php - mysql 的输出总和 - 不正确的值

html - 如何添加元属性 ="og:locale"内容 ="?"

php - 独特的 slug,如果适合 slug-1、slug-2...slug-n

angularjs - 如何为谷歌机器人动态设置 Angular 单页应用程序的标题和描述?