如何避免Facebook在Facebook评论通知中添加_escaped_fragment_到网址?

时间:2015-06-04 10:28:15

标签: facebook facebook-comments hashbang

我有一个在网址中使用hashbang(#!)的Angular网站。要为抓取工具和Facebook bot(将#!更改为?_escaped_fragment)呈现这些页面,我有服务器端逻辑来添加元标记,打开图形标记等并呈现页面的特殊版本。

I.e:http://example.com/something/#!/a/special/url由Facebook使用http://example.com/something/?_escaped_fragment_=/a/special/url获取,我的服务器响应正确。

这很有效。 Facebook自己的开放图调试页面正确获取页面元数据。我可以在Facebook上分享这个页面。

但这些网页也有Facebook评论。它是由插入

的javascript添加的
<div class="fb-comments fb_iframe_widget fb_iframe_widget_fluid" 
  data-href="http://example.com/something/#!/a/special/url" 
  data-numposts="5" 
  data-width="100%" 
  data-version="v2.3" 
  data-colorscheme="light"
</div> 

显示评论框,一切都很好。我甚至可以发表评论,稍后再看。

但是:当Facebook向已注释的其他用户发送通知时,Facebook上显示的链接有一个?_escaped_fragment_而不是一个hashbang(#!),导致用户获得“特殊”Facebook页面。这对我来说很奇怪,因为转义片段应该仅由机器人使用,而不是在链接中显示。

Facebook通知上的链接采用此格式lsr.php?u=http%3A%2F%2Fexample.com%2Fsomething%2F%3F_escaped_fragment_%3D%a%252Fspecial%252Furl%252F17%252F&ext=......

在显示链接时,是否有某种方法可以避免Facebook显示此_escaped_fragment_?

0 个答案:

没有答案