Facebook 当需要区域设置时,如何设置og:url?

Facebook 当需要区域设置时,如何设置og:url?,facebook,internationalization,facebook-opengraph,Facebook,Internationalization,Facebook Opengraph,我在一个网站上工作,该网站需要将区域设置作为URL的一部分(例如) 如果您没有输入区域设置(例如),系统将显示一个错误页面,并要求您从列表中选择一个值 对于大多数外部站点,我们只是省略了区域设置,让用户选择,然而,对于Facebook,这会导致爬虫刮取错误页面 如果我们将每个区域设置包含为一个单独的og:url,这将意味着为每个页面创建数千个对象(因为我们支持那么多区域设置),并且可能为站点创建数十万个对象 Facebook允许一个域有如此多的og:URL吗 我可以使用更好的策略吗?Facebo

我在一个网站上工作,该网站需要将区域设置作为URL的一部分(例如)

如果您没有输入区域设置(例如),系统将显示一个错误页面,并要求您从列表中选择一个值

对于大多数外部站点,我们只是省略了区域设置,让用户选择,然而,对于Facebook,这会导致爬虫刮取错误页面

如果我们将每个区域设置包含为一个单独的og:url,这将意味着为每个页面创建数千个对象(因为我们支持那么多区域设置),并且可能为站点创建数十万个对象

Facebook允许一个域有如此多的og:URL吗


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

Facebook希望Caninic URL不直接包含区域设置代码。在URL中包含一些区域设置代码意味着图形中有不同的对象,每个区域设置对应一个对象

相反,创建不包含区域设置代码的URL。在每个包含区域设置代码的其他用户可见URL上,添加一个og:URL标记,该标记指向不包含区域设置代码的规范URL

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


有关如何处理多语言环境对象的更多信息,请参见FB的open graph internationalization docs

Hi Simon,感谢您的回答,这是一个聪明的东西,我将看看是否有可能在我们的框架中实现它!只是为了让客户了解全部情况-您知道您可以创建的开放图形对象的数量是否有限制(我们需要数十万个)?如果有,但我们无法实现您的理想解决方案,我认为我们可以使用每种语言一个对象(这似乎更合理)。没有限制,但您绝对不应该在开放图中为每个语言环境中的每个对象创建对象。这是因为随着时间的推移,Facebook会根据人们与图中每个节点的互动情况来确定其权重。这是用于推动从Facebook到您的产品的分发的指标之一。在每个语言环境中创建每个对象的URL会将此权重拆分到每个语言环境对象上-这意味着它们的权重不会太高,这意味着您将获得较少的分布。