Facebook - 解析输入URL时出错,没有缓存数据,或者没有数据被删除

时间:2014-09-09 14:54:08

标签: php facebook facebook-opengraph

经过研究,我发现很多人都面临同样的问题。但到目前为止,我没有解决方案,这是在我将服务器切换到linode.com之后发生的

让我们举个例子。 www.acemark2u.com是linode服务器下托管的网站之一, 当我尝试在https://developers.facebook.com/tools/debug/og/object/中进行调试时,它无法正确获取刮擦信息,如果我尝试使用其中一个页面www.acemark2u.com/about-us,它只会显示错误"解析输入URL时出错,没有缓存数据,或者没有数据被删除。"

奇怪的事情发生了。当我尝试使用ip地址106.187.35.114/~acemark2进行调试时,一切顺利。很好地获取,页面没有错误404。

我怀疑它可能是由" gethostbyaddr"功能(参考:http://www.gearhack.com/Forums/DisplayComments.php?file=Computer/Network/Internet/Preventing_Your_Web_Server_From_Blocking_Facebook_Share)但到目前为止我还没有解决方案。

5 个答案:

答案 0 :(得分:14)

对于遇到相同问题但出于不同原因的人,我发现了一些有趣的事情,关于Facebook如何“刮擦”页面,在进行一些试验时检查服务器的日志。

首先:如果你从未试图与FB共享页面,FB从未试图抓过它,如果你只把url放在Debug工具中就不会尝试这样做 。 这是第一个原因,因为你得到了错误:它只是声明FB没有关于页面的信息,你必须“强迫”它刮掉页面。

第一次尝试共享页面时,FB会将其擦除(向服务器询问页面的前40k并分析opengraph标记)。 可能发生的是您没有看到图像:Facebook Share Dialog does not display thumbnails one first load

原因是幕后的FB仍在抓取你的页面并缓存图像。事实上,下一次你也有了这个形象。 怎么解决?预缓存:https://developers.facebook.com/docs/sharing/best-practices#precaching

或只是添加

{{1}}

答案 1 :(得分:4)

我终于找到了解决方案。

在我的默认DNS A / AAAA记录中,我没有删除这几个ip

2400:8900::f03c:91ff:fe73:a95d  Default
mail    2400:8900::f03c:91ff:fe73:a95d  Default
www 2400:8900::f03c:91ff:fe73:a95d  Default

这就是为什么有些用户在通过适当的网址访问时会指向上述IP的原因。

答案 2 :(得分:3)

这个问题已经接受了答案,但如果这个答案对任何人都没有用,那么这对我有用。

我在og:url中提供的网址是受保护的网址,即只有那些用户才能查看已登录的网址所指向的网页。当我更改URL以指向我的主页时,登录或退出的用户都可以查看。 http://www.ercafe.com一切正常。

答案 3 :(得分:0)

我们在其中一个网站上遇到了类似的问题。

我们通过在使用facebook对象调试工具“获取新的抓取信息”时禁用apache mod_security来解决这个问题

答案 4 :(得分:0)

对我来说,解决方案是替换DNS A记录

example.sk  3600    1.2.3.4
www.example.sk  3600    1.2.3.4

example.sk  3600    1.2.3.4
*.example.sk    3600    1.2.3.4