我的页面中的代码由此激活(我可以在标题的注释中输出其值):
isset($_GET['_escaped_fragment_'])
我正在使用此工具查看'刮刀看到'的来源https://developers.facebook.com/tools/debug
我的网址中有#!
shebang。
尽管如此,我正在测试的其中一个网站收到_escaped_fragment_
(使用网址中的?_escaped_fragment_=
进行Facebook访问),而另一个网站没有。
我认为它与页面上的内容(og metas)没有任何关系,因为它决定了在加载URL之前是否要将#!
重写为?_escaped_fragment_=
。
有人可以告诉我使这项功能有效的必要条件吗?
答案 0 :(得分:2)
这是因为元og:url / link rel = canonical。我发现Facebook'刮刀看到的'会给你最终的结果,而不是你期望的'第一次爬行'。因此,FB爬虫会转到页面,看到带有og:url的元标记,或者最重要的是链接rel = canonical。然后它停止抓取页面并转到指定的URL。然后它会向您显示该URL的来源,并且其中没有shebang。这一切都是合乎逻辑的,但我并不认为这是“隐藏的重定向”或在幕后反弹。解决方案是过滤掉/删除元og:url并从头部链接rel = canonical,即关于它。一些WP插件顺便添加了这些。