如何通过301重定向移动URL并保留页面的Facebook喜欢和Open Graph信息?

tim*_*mow 30 redirect facebook-like opengraph

我理解og:url元标记是开放图中资源的规范网址.

如果我希望支持301重定向资源,同时保留其在开放图中的位置,我可以使用哪些策略?我不想失去我的喜欢,因为我已经改变了URL.

最好的方法是存储内容的原始网址,并参考这个?还有其他策略可以解决这个问题吗?

澄清 - 我有页面:

/page1,用og:urlhttp://www.example.com/page1

我现在想要/page2使用301重定向将其移动 到http://www.example.com/page2

除了设置og:urlmeta之外,我有什么选择可以避免丢失喜欢和评论/page1吗?

Igy*_*Igy 50

简短的回答,你不能.

一旦在Facebook的一侧创建了对象,其Facebook图中的URL就固定了 - 喜欢和评论与该URL和对象相关联; 您需要Facebook的爬虫才能访问该URL,以便将来维护该对象.(请注意,对象变得无法访问并不一定会将其从Facebook中移除,但实际上您将重新开始)

我通常在这里推荐的是(带有示例http://www.example.com/oldurlhttp://www.example.com/newurl):

  • 在/ newpage上,将og:url标记保持为/ oldurl
  • 从/ oldurl添加HTTP 301重定向到/ newurl
    • 从此重定向中免除Facebook抓取工具
    • http://www.example.com/oldurl如果请求来自Facebook抓取工具,请继续为页面提供元标记.
    • 无需向抓取工具返回任何实际内容,只需使用带有相应标签的简单HTML页面即可

从而:

  1. 点击后,Facebook上对象的现有实例将通过重定向将用户带到正确的(新)页面
  2. (新)页面上的Like按钮仍会产生类似于正确对象的内容(但在旧URL处)

如果您要移动大量网址或完全重写网址方案,则应使用新文章/产品等的新网址,但如果您想要保留相关内容,评论,则需要保留重定向等旧内容.

这包括您是否正在更改域名.

这里唯一的问题是在代码中的某处维护旧的URL - >新URL映射,但这在技术上并不困难,这是将来维护的另一件事.

BTW,Facebook爬虫UA目前 facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)