2011-05-17 57 views
3

我正在使用多语言网站(php/mysql),我的问题是什么将是语言标识的最佳解决方案 - 会话/ cookie或URI标识。我的意思是在SEO方面,什么会更准确。会话与URI多语言标识符

谢谢

+0

这是一个域,或者一个域每种语言? – 2011-05-17 13:09:40

+0

* [任何想法开发多语言网站 - 搜索引擎优化,PHP,MySQL](http://stackoverflow.com/questions/5284773/any-ideas-for-developing-a-multi-language-site- seo-php-mysql/5285641#5285641)* – Gumbo 2011-05-17 13:29:26

+1

我有一个单一域的所有语言及其相应的翻译。 – 2011-05-17 14:41:29

回答

3

有不同类型的项目,不应该使用相同的语言实现。

让我举一些例子:

  1. 第一个项目有一个单独的域名,让我们说example.com。这个网站应该有三种语言版本。为了让搜索引擎能够清晰地抓取每种语言并对其进行索引 - 正确的解决方案是通过url传递。 example.com/fr/为法语。

  2. 第二个项目的每个语言都有一个域名example.fr example.co.uk。最好的做法是,每个域只能由搜索引擎按其主要语言编入索引。因此,我选择的解决方案是在切换时将语言存储在cookie中。 (或完全重定向到其他域)。

如果我们会选择例如1例如2解决方案,既example.co.uk/fr/和example.fr将有相同的内容,这不是搜索引擎友好。

+0

在问题的上下文中,两种解决方案都是相同的,因为它们都只使用URI。 – KingCrunch 2011-05-17 12:45:16

+1

第二种解决方案不使用URI,它可以使用POST完成或使用ACCEPT_LANGUAGE检测用户的语言。 – 2011-05-17 12:48:01

+0

就我而言,我有一个适用于所有语言的单个域以及它们相应的翻译。 – 2011-05-17 12:52:59

1

如果将语言放入URI中,webcrawler可以使用不同的语言对网站编制索引,并且用户可以为其添加书签/链接。如果没有对页面的直接引用(=> URL),这是不可能的。

您可以结合使用这两种方法:如果URI中没有可用的特定于语言的信息,请尝试从cookie/session中找出它,如果失败,请查看Accept-Language -Header。现在,如果一个用户改变语言(通过链接或其他)将其写入一个cookie(以便以后访问)。

1

URL。你可以在所有路径中使用'/ en /'前缀。显然你会使用mod_rewrite或合适的框架路由配置。

+0

谢谢@SkippyChalmers,问题是从SEO的角度来看哪个方法更好 – 2011-05-17 14:40:28

1

仅使用会话/ cookie,某人直接链接到“斯瓦希里语”版本的内容实际上是不可能的。相反,您将拥有所有传入链接将指向的默认语言(英文?)。一旦到了那里,如果用户想要你的普通话内容,那么他​​们可以选择这个选项,但是他们不会直接离开,所以使用URI标识是我个人的选择。

有几种方法可以通过设置某种目录结构来标记在URI中使用哪种语言,例如:http://domain.tld/localized/fr/用于法语内容的主页,或者您可以将其抽象出来通过GET变量数据库和识别语言:http://domain.tld/?l=4语言的主要页面的4

ID或者,像韦斯利面包车Opdorp指出的那样,你可以设置一个单独的域或子域的每种语言:http://domain.frhttp://fr.domain.tld

就SEO而言,我相信最好的办法是坚持顶级Domai n标准并为您希望承载网站的每种语言(http://domain.frhttp://domain.ru等)设置单独的域。当然,这将意味着购买更多的领域,所以如果这是不是一种选择,我的第二个选择是设立子域每个的langauge如:http://fr.domain.tldhttp://ru.domain.tld