经过研究,我发现很多人都面临同样的问题。但到目前为止,我没有解决方案,这是在我将服务器切换到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)但到目前为止我还没有解决方案。
答案 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