我在一个站点上工作,该站点要求将区域设置作为 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/