【发布时间】:2015-10-29 22:26:59
【问题描述】:
我阅读了很多关于这些主题的文章,并且我知道没有任何解决方案可以完美地处理多语言网站。我使用different folder 为不同语言提供内容,因此我有www.example.com/en、www.example.com/es 等。
当用户第一次在www.example.com 访问该站点时,我从Accept-Language HTTP 标头中选择最佳匹配语言,如果没有语言匹配,则使用en 版本将其重定向到最合适的页面。由于这个原因,www.example.com 没有真正的页面,它总是会生成重定向。
这对用户和搜索引擎都非常有效,但是这种方法存在缺陷,喜欢分布在不同的语言中,我希望所有这些都用于www.example.com
如果我将 og:url 设置为根页面 FB 爬虫对重定向循环的投诉,因为它来自 www.example.com,然后它被重定向到 www.example.com/en,其中 og:url 设置为 www.example.com。我想保持点赞的统一,即www.example.com/es 的点赞和www.example.com/en 的点赞都应计入主域。
我目前的解决方案是以这种方式修改重定向代码:当用户代理是 facebook 时,在请求 www.example.com 时从不重定向。使用默认语言环境或语言环境 requested by FB 和 fb_locale 参数。
我还添加了语言环境开放图形标签,以告诉 FB 我的页面的不同语言环境。
最后,我将规范的 url 标记与区域设置部分一起保留,因为每种语言都以这种方式提供自己的内容,搜索引擎应该意识到这一点。这是(或多或少)主页的头部部分
<meta content="website" property="og:type" />
<meta content="http://www.example.com/" property="og:url" />
<meta content="en_US" property="og:locale" />
<meta content="es_ES" property="og:locale:alternate" />
<meta content="fr_FR" property="og:locale:alternate" />
<link href="http://www.example.com/en" rel="canonical" />
通过这种方式,一切似乎都可以正常工作,并且喜欢计数在所有语言之间共享。我只收到 facebook 调试器的警告
不匹配 og:url 和规范 url: og:url 标头中的标签不是 与 html 中的 rel='canonical' 链接相同的 URL。
这个设置正确吗?我对这个标记有什么问题吗?
Similar question 但他想要每个国家/地区的点赞数。
【问题讨论】:
-
警告就是这样——警告。此处提醒您这两个值不匹配,您应该对此进行调查。但是,由于您故意选择了这种方式,因此实际上不需要对其进行调查。调试工具会告诉你 Facebook 认为哪个 URL 是对象的“最终” URL——如果那是你想要的,那就不用担心了。
-
@CBroe 谢谢。这是我的想法。您在该标记中看到任何其他问题吗?例如与搜索引擎。
标签: html facebook facebook-graph-api seo meta-tags