Redirect 如何通过301重定向移动URL并保留页面';s Facebook喜欢并开放图形信息?

Redirect 如何通过301重定向移动URL并保留页面';s Facebook喜欢并开放图形信息?,redirect,facebook-like,facebook-opengraph,Redirect,Facebook Like,Facebook Opengraph,我知道og:urlmeta标记是开放图中资源的规范url 如果我希望支持301重定向资源,同时保留其在开放图中的位置,我可以使用什么策略?我不想失去我喜欢的东西,因为我已经更改了URL 存储内容的原始url并引用它是最好的方法吗?有没有其他应对策略 要澄清-我有第页: /page1,带有http://www.example.com/page1 我现在想把它移到 /page2,使用301重定向到http://www.example.com/page2 除了将og:urlmeta设置为/page1,

我知道
og:url
meta标记是开放图中资源的规范url

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

存储内容的原始url并引用它是最好的方法吗?有没有其他应对策略

要澄清-我有第页:

/page1
,带有
http://www.example.com/page1

我现在想把它移到
/page2
,使用301重定向到
http://www.example.com/page2


除了将
og:url
meta设置为
/page1
,我还有什么办法可以避免丢失喜欢的内容和评论吗?

简短回答,你不能

一旦在Facebook一侧创建了对象,它在Facebook图形中的URL就被固定了——喜欢和评论都与该URL和对象相关联;为了将来维护该对象,您需要Facebook的爬虫能够访问该URL。(请注意,对象变得不可访问并不一定会将其从Facebook中删除,但实际上您将重新开始)

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

  • 在/newpage上,使og:url标记指向/oldurl
  • 将HTTP 301重定向从/oldurl添加到/newurl
    • 将Facebook爬虫从该重定向中豁免
    • 继续为
      http://www.example.com/oldurl
      如果请求来自Facebook爬虫
    • 不需要将任何实际内容返回到爬虫程序,只需要一个带有适当标记的简单HTML页面
因此:

  • Facebook上现有的对象实例将在单击时通过重定向将用户带到正确的(新)页面
  • (新)页面上的Like按钮仍将生成正确对象的Like(但位于旧URL)
  • 如果你正在移动大量URL或完全重写你的URL方案,你应该为新文章/产品/等使用新的URL,但是如果你想保留旧内容上的喜欢、评论等,你需要保持重定向

    这包括您是否正在更改域

    这里唯一的问题是在代码中的某个地方维护旧的URL->新的URL映射,但这在技术上并不困难,只是将来需要维护的一件额外的事情


    顺便说一句,Facebook爬虫UA目前是
    facebookexternalhit/1.1(+http://www.facebook.com/externalhit_uatext.php)

    我的旧网站也有同样的问题。域正在更改,管理员希望更改搜索引擎优化的URL等

    我得出的结论是,最好从一开始就在db中为facebook设置某种uniqe id。例如,对于文章,我有myurl.com/a/123,其中123是文章的ID

    真正的url是myurl.com/category/article-title。文章然后可以被放在不同的类别,重命名等广泛的逻辑301重定向背后。但是基本的fb标识符可以永远保持不变

    当然,只有从一个新网站开始,或者第一次实施fb评论时,这才是可行的


    如果您可以提前计划,我只是想一个主意:)让我知道您的想法。

    如果旧URL经过301重定向,然后按照您的建议执行,fb-like计数还会重置为0吗?如果您对某个URL有like,然后将该URL重定向到其他位置,重定向的目标会保留旧URL的like计数吗?不,我相当肯定不是。这几乎与我的答案提供的解决方案相反为什么需要免除facebook爬虫的重定向?如果你不这样做会发生什么?我不是100%肯定的,但我相信爬虫认为“后重定向”页面是规范的URL,并且可以忽略“旧”URL(现在是在重定向链中间到最后的规范URL),这就是FB目前关于他们的爬虫(包括更新的UA)所说的。-另外,很高兴看到他们授权检测UA,所以这样做没问题-这并不能解决协议更改迁移(例如从HTTP迁移到HTTPS)。这很有意义,但让我很高兴我从未实现Facebook评论!真是一团糟。FB应正确支持301,并重新设置喜欢的属性。默认情况下,它们还应该支持HTTP/HTTPS。