问题情景:
我们在网站上强制使用HTTPS。任何带有HTTP的URL现在都会重定向(301永久重定向)到适当的HTTPS URL。
为了避免Facebook喜欢/分享按钮(放置在网站的许多页面上)丢失以前的喜欢/分享数量,我们通过“数据 - 使按钮”链接到旧的HTTP URL href“property。
此外,我们在某些网页上放置了“og:url”元标记,指向旧的HTTP网址。
然后,我在Facebook调试工具https://developers.facebook.com/tools/debug上删除了这些页面,以确保Facebook获取新数据。根据抓取的数据,规范URL确实指向旧的HTTP URL,就像它应该根据我们上面列出的操作一样。这也反映在我们页面上的类似/共享按钮中,保留了旧数字。
几天后,我发现有些网页丢失了旧版的喜欢/分享。检查Facebook调试器中的页面显示Facebook现在将HTTPS URL视为规范。我们的页面没有进行任何更改,“og:url”标记仍然指向HTTP URL。但Facebook错误地将HTTPS URL作为规范URL。现在,如果我再次在调试器中搜索信息,它再次变得正常,将HTTP显示为规范并恢复旧的喜欢/共享数量。但显然这不是问题的解决方案,因为我们无法持续监控所有页面并一次又一次地扫描它们。
可能导致问题的任何想法?
答案 0 :(得分:0)
Facebook也遵循HTTP重定向。您需要将旧的HTTP URL提供给scraper,而无需将其重定向到HTTPS版本。 (刮刀可以被其用户代理识别,请参阅社交插件常见问题解答。)
旧的HTTP网址需要供刮刀使用,而不是重定向到HTTPS,因为常见问题解答也提到:
“这还要求旧URL仍然使用Open Graph标记呈现文档并返回HTTP 200响应,至少在Facebook的爬虫加载时。如果您希望其他客户端在访问URL时重定向,则必须将301 HTTP响应发送给所有非Facebook爬网程序客户端。旧URL应包含自己的og:url标记,指向自身。“