1

我的页面中有由此激活的代码(我可以在标题的注释中输出它的值): isset($_GET['_escaped_fragment_'])

我正在使用此工具查看“刮刀所见”的来源https://developers.facebook.com/tools/debug

我的网址中有#!shebang。

尽管如此,我正在测试的网站之一会收到_escaped_fragment_(在 URL 中使用的 Facebook 访问?_escaped_fragment_=),而在另一个网站上却没有。

我认为它与页面上的内容(og metas)没有任何关系,因为它甚至在加载 URL 之前就#!决定是否重写。?_escaped_fragment_=

有人可以启发我使此功能正常工作需要什么吗?

4

1 回答 1

2

这是因为元 og:url / 链接 rel=canonical。我发现 Facebook 的“scraper 看到的”向您展示了最终结果,而不是您期望的“第一次抓取”。因此 FB 爬虫进入页面,看到带有 og:url 的元标记,或者最重要的是链接 rel=canonical。然后它停止抓取页面并转到指定的 URL。然后它会向您显示该 URL 的来源,并且其中没有 shebang。这一切都是合乎逻辑的,但我没有指望它会执行这种“隐藏重定向”或在幕后反弹。解决方案是从头部过滤/删除 meta og:url 并链接 rel=canonical ,仅此而已。顺便说一下,几个 WP 插件添加了这些。

于 2013-08-02T08:18:17.773 回答