在此处http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#localization-在cakepp中,它被写为
提供多个可用的公共内容是个好主意来自唯一URL的语言-这使得用户(和搜索引擎),以找到他们想要的语言期待。
假设我有一个用英语和俄语创建的网站。默认语言是英语,所以当我打开example.com
时,它是英语。如果我点击俄语链接,页面将被重新加载(会话变量Config.language
被设置为rus
),同一页面example.com
将变为俄语。所以,假设SE抓取我的网站,并拥有相同的页面example.com
,其中包含两种不同语言的内容。
问题1
就SEO而言,这不是很好吗?SE是否对这类事情有一些惩罚——同一个url有多个内容可用?
现在我用俄语搜索一些东西,谷歌会显示带有俄语标题和元描述(或页面上的一些文本)的example.com
,所以我点击了那个链接,但因为会话没有设置为俄语,我会看到英语内容。
问题2
毕竟,这不是一种床上练习吗?因为这对用户来说很棘手,因为他们点击一些东西就会看到其他东西?
感谢
是的,让同一个URL加载不同的内容是不好的做法。
我看到的常见做法是使用语言前缀。例如:
example.com/eng/articles/article123
example.com/rus/articles/article123
或
example.com/en/articles/article123
example.com/ru/articles/article123
然后,在AppController中,您可以检测前缀(在路由中设置后),并根据该前缀设置要使用的语言。
你也可以使用不同的slugs,但据我所知,大多数默认为英语的网站都会同时使用英语slugs——尤其是如果其他语言使用的字符对URL不友好的话。
编辑:
根据詹姆斯下面的观点,使用子域也可以。