我目前正在编写支持多种语言的ASP.NET MVC 3 Web应用程序.
我已经设法翻译所有路由,以便调用如下:
www.mysite.de/Kontakt和www.mysite.de/Contact将路由到同一个Controller / Action.
通过设计,当调用www.mysite.de时,语言(存储在会话对象中)将自动设置为默认语言(此处为德语).然后相应地动态设置站点的导航.
会话对象中的语言可以通过点击“英文版”链接或手动调用例如www.mysite.de/Contact.在这种情况下,可以识别出链接(/ Contact)与路径匹配
定义为英语,因此我将会话对象中的语言更改为英语.当然,网站的内容也是本地化的.
我现在的问题是如何与SEO合作,特别是与Google合作?
我已经将Content-Language元标记动态添加到每个页面.所以我认为使用合适的sitemap.xml就足够了.
Google是否正确认识到这一点?在用德语搜索谷歌时,我得到的结果是“Kontakt”,用英语搜索时是“联系”吗?
另一个问题是当不同语言的链接相同时会发生什么?例如. “工作”的链接与英语和德语相同.
我希望这个问题是可以理解的,因为我的问题相当复杂.
干杯,
西蒙
最佳答案 Google不仅依赖于您告诉他们您网站所使用的语言,而且只提示他们.
页面将被分析并以“德语”中的页面或基于内容语言的“英语”页面呈现.
但你的基本假设是正确的.
是的,如果我用德语搜索您的页面,并且Google已将该页面编入索引为德语页面,Google将返回Kontakt.
至于你的第二个问题,除非你提供另一种方法来改变路径以外的语言(浏览器设置中的查询字符串或语言),这些链接将只是你的默认(德语)语言.
如果您希望它们以英文显示,请使用其他不同的URL:您只在SiteMap.xml中使用的Jobs-EN(当然还有路由).