facebook - 如何设置 og :url when a locale is required?

标签 facebook internationalization facebook-opengraph

我在一个站点上工作,该站点要求将区域设置作为 URL 的一部分(例如 http://example.com/content/locale)。

如果您没有输入语言环境(例如 http://example.com/content),您会看到一个错误页面并要求您从列表中选择一个值。

对于大多数外部网站,我们只是省略区域设置并让用户选择,但是,对于 Facebook,这会导致爬虫抓取错误页面。

如果我们将每个语言环境作为单独的 og:url 包含,这将意味着为每个页面创建数千个对象(因为我们支持那么多语言环境)并且可能为网站创建数十万个对象。

Facebook 是否允许一个域有如此大量的 og:url?

我可以使用更好的策略吗?

最佳答案

Facebook 希望 caninical url 不直接包含语言环境代码。在 URL 中包含一些区域设置代码将意味着您在图中有不同的对象,每个对象对应一个区域设置。

相反,创建不包含语言环境代码的 url。在其他每个包含语言环境代码的用户可见 URL 上,添加一个 og:URL 标记,该标记指向其中没有语言环境代码的规范 URL。

在规范 URL 上,当 Facebook 发出请求时,查找用户代理字符串。如果包含“facebookexternalhit”,则返回 HTML 和 og 标记供 Facebook 阅读。如果没有,您可以提供 302 并将用户重定向到以他们的语言表示对象的 URL。

有关如何处理多语言环境对象的更多信息,请参阅 FB 的开放图国际化文档

关于facebook - 如何设置 og :url when a locale is required?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272219/

相关文章:

java - 资源包 Spring

java - 为什么 HttpClient 不发送指定的 Accept-Language 字段?

javascript - 将自定义标题和消息添加到 Facebook 对话框共享

ios - Facebook iOS SDK 4.2.0 - 共享自托管 Open Graph 故事时出错

facebook - 符合隐私的 Facebook Like 按钮,带计数

python - 带有图形api的facebook墙贴中的html?

javascript - Passport - NodeJS - Facebook 身份验证后将用户返回到上一页

internationalization - i18n - 国际化的最佳实践 - XLIFF, gettext, INI, ...?

Facebook API 重定向到错误的地方

Facebook - 私有(private)回复 - 缺少 read_page_mailboxes 权限