2011-03-12 60 views
3

我刚刚完成了一个客户的网站,现在他们想要有不同的语言。开发多语言网站的任何想法 - SEO,php,mysql

在网站内容存储在表中的一个MySQL数据库的时刻:

  • seotitleseodescsmallHtmlfullHtml

  • 产品IDseotitleseodescsmallHtmlfullHtml

我在想一个好办法做到这一点是有一个额外的表:

  • 语言IDLanguageCodel anguage

然后修改网页​​和产品表:

  • seotitleseodescsmallHtmlfullHtmllanguageCode
  • 产品IDseotitleseodescsmallHtmlfullHtml语言代码

所以我会运用像

SELECT * FROM pages WHERE slug = '$slug' AND language='$language' 

我应该将$language设置为cookie还是会话吗?

此外,我坚持要做甚至搜索引擎优化去。目前网站的网址结构为/pages.php?slug=page-slug。这会被mod_rewrite重写为/pages/page-slug

所以我想到/pages.php?slug=page-slug&code=languagecode重写为/pages/page-slug/languagecode。产品相同。

这是一个很好的方法,或者你可以看到它失败吗?

如果有人有任何更好的方法或资源的链接,我可能错过了,将不胜感激。

感谢您的阅读。

编辑/////

如果我是用这个方法http://en.kioskea.net/faq/596-change-the-language-of-your-website并更改语言幕后,在不改变URL结构如何将谷歌处理这个问题?

回答

3

基础知识,每个表都应该有一个ID,看起来像页面会丢失它,如果你改变它的建议。

许多主要网站(包括维基百科)都使用2位ISO语言缩写为语言前缀加上了语言,例如, English = en等。这会使您的网址看起来类似于en.websitename.com。请记住,虽然大多数的多语言的网站没有在URL中显示的默认语言,因此,如果英语是你的默认,然后英语将www.websitename.com但法国将fr.websitename.com。这似乎是一种普遍接受的方法,并且还有助于在查看子页面时URL更清晰。除了语言位之外,您的其他网页网址结构看上去很友好。

你需要考虑如何访问者首先要输入你的域名,是否你的主要首页或子页面(通过搜索引擎居多)。因此,您应该尝试将用户重定向到网络浏览器的语言(请参阅here以了解执行此操作的好方法)。尽管如果用户(在那里第一次访问)所要使用的内容与浏览器的语言不同,那么这也是一个好主意,那么提供一种清晰的方式来访问这两个版本是很好的,然后您将通过饼干/会话。

其他搜索引擎优化技巧:看here为基础。

+0

“对于搜索引擎优化,Google倾向于使用语言的2位ISO缩写将例如语言前缀为子域,例如,英文= en等“ - 请验证此声明。 – Gumbo 2011-03-12 20:12:56

+0

aSeptik链接到的链接由Nathan Buggia(Bing搜索)回答,并表示几乎相同。 2位数字格式是我见过的大多数主要网站的标准(不使用不同的顶级域名),维基百科就是最好的例子。 – Alex 2011-03-12 20:34:17

+1

@Alex:我熟悉语言标签。但为什么Google使用该语言标签的子域名更受欢迎?我的意思是,我所能找到的只是:[“Google使用页面内容来确定其语言,但是URL本身为人类用户提供了关于页面内容的有用线索。”](http://www.google。 com/support/webmasters/bin/answer.py?answer = 182192) – Gumbo 2011-03-12 20:46:01

5

谷歌和其他搜索引擎不尝试通过检查URL,it’s the content that matters猜测的语言:

谷歌使用网页的内容,以确定它的语言,但是网址本身也能为用户提供有用的线索关于网页的内容。

这就是为什么你应该declare the content’s language properly:在HTTP使用Content-Language指定文档的默认语言,并使用lang属性语言文档中的改变。

拥有一个多语种网站,你也应该考虑做一些种类language negotiation(另请参阅my answer to Detect Browser Language in PHP);但也要考虑与其相关的细微差别(请参阅Common HTTP Implementation Problems)。

但是,选择合适的URI结构也很重要 - 即使仅限于用户。这意味着URI应该反映选择的语言(除非你想为语言谈判提供一个语言无关的入口点)。

但是您选择的URI设计取决于您。从用户的角度来看。