【问题标题】:Give a user the right language为用户提供正确的语言
【发布时间】:2014-05-08 07:13:20
【问题描述】:

我正在开发的网站提供英语和德语内容。我想向用户展示正确的语言。

情况示例:

所以当有人来/拜访时:

www.example.de
www.example.ch
www.example.at 

语言应该是德语。

但如果有人来:

www.example.com 

我首先通过 javascript 询问浏览器语言是否为德语,如果是,
我正在重定向到.de 域。如果没有,该网站是英文的。

这是最好的方法吗?还用于 SEO 目的?有人有更好的主意吗?我知道还有一种方法可以用php来做,这样更好吗?

这是我重定向的代码:

$.browserLanguage(function(language, acceptHeader) {
    if (language == "German") {
        window.location.href = "http://www.example.at"
});

【问题讨论】:

  • 它们是否都解析为相同的代码?为什么不能只检查 PHP 中的域并相应地提供服务?
  • 我根本不会重定向,也许只是在顶部栏中显示带有链接的提示,因此用户可以自己选择。也许他们有充分的理由以另一种语言访问该网站。如果他们更频繁地访问该网站,他们可能会记住或收藏正确的网址。如果他们是通过搜索引擎来的,他们可能会因为搜索词的语言找到正确的版本,如果他们出于某种原因落入了错误的版本,你可以提示他们到另一个版本,而不是强迫他们.
  • 好吧,问题是,很多人可能会来到我的身边,因为英语关键字会显示错误的页面。我提供了改变语言的可能性。我刚刚在 Google Analytics 上看到很多人在不到 1 秒后就离开了页面,因为他们没有在寻找更改语言的方法。这就是为什么我首先要为他们提供正确的语言。

标签: javascript php html seo


【解决方案1】:

出于 SEO 的目的,重要的是所有这些域都以某种方式从主站点链接(一个带有标志的小“选择语言”部分没关系,这些是爬虫的链接),因为爬虫通常不执行 javascript .

您不必在客户端执行 Javascript 来检查客户端的首选语言。您可以在服务器端读取“Accept-Language”HTTP 标头,如下所示:

接受语言 en,de;q=0.5

在这种情况下,首选英语,第二位是德语 (q=0.5)。

从 SEO 的角度来看,不同语言的不同域是好的。搜索引擎需要在不同的 URL 下有不同的内容(不同的语言)。您也可以使用 example.com/[lang]/ 格式,不需要注册多个域。

【讨论】:

  • 我不太明白这一点。你是说,最好有一个 www.example.com/de 和 www.example.com/en 页面用于 SEO 目的?或者如果浏览器是英文的,我应该有一个德语 www.example.com 并链接到 www.example.com/en?拥有 Accept-Lanugage 参数意味着什么?如果有人来自法国,这对他们意味着什么?抱歉,我需要更长的时间才能理解这一点......
  • 不,我的意思是,拥有 example.com/de 比在 example.com 下提供英语和德语内容要好。可以在服务器站点上处理 Accept-Language 标头以在那里进行重定向,而无需客户端代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2019-09-13
相关资源
最近更新 更多