Facebook分享Og:图像错误,当图像仅小于200kb时

时间:2016-04-18 07:58:18

标签: facebook

Facebook调试器 https://developers.facebook.com/tools/debug/sharing/?q=http%3A%2F%2Fepaper.sinchew.my%2Fsinchewepaper%2Fmobimax%2Freader%2Fmagazine%2Fasd.php

我一直收到这条消息 提供og:图像...图像链接...无法下载,因为它超出了允许的最大大小8Mb或您的服务器响应太慢。

图片只有200KB左右。

为什么会这样?请帮助!

2 个答案:

答案 0 :(得分:0)

我有同样的问题,但它已经解决了。在我的情况下,loop文件关注它。如果在images目录中设置.access文件并限制来自.access目录以外的其他人的访问,则可能需要更改设置或环境。

答案 1 :(得分:0)

+1亚历山大T的回答

对我来说,这个问题与我网站根目录中的.htaccess文件有关。

有一个部分支持热链接保护,换句话说,阻止除我指定的引荐者之外的任何人访问我网站的图像文件。 Facebook并没有列入允许推荐人列表中,因此,无论我重新抓取多少次,或者我是否指定了og:image,我的图像都不会显示出来。高度和og:图像:宽度。

阻止热链接的规则可能会添加到您的.htaccess文件中,而无需您实际手动编辑它 - 像BlueHost这样的服务器只需一次点击即可在您网站的cPanel设置中启用热链接保护。

为了解决这个问题,我做了两件事。我非常确定第二个动作本身不起作用,而且可能没必要,但是我把它包括在内,你可能想要像我一样将搜索引擎添加到你允许的推荐人中。这是:

1)我选择允许直接请求(根据我的理解与允许热链接不同,换句话说它仍提供一些热链接保护)

2)我添加了一条规则,允许facebook.com和fbcdn.net进入允许引荐的列表(以及google,yahoo,bing for good measure)

您可以通过使用cPanel Hotlink Protectio模块完成这两个步骤,该模块更易于用户使用"界面,或者你可以直接在文件管理器或FTP上编辑你的.htaccess文件(和往常一样,你应该在对它进行任何修改之前备份你.htaccess!一个错误,你的网站根本没有工作,但使用备份只需要一秒钟就可以用最新的工作版本替换它。)

hotlink-protection (cPanel,BlueHost中热链接保护模块的屏幕截图)

configure-hotlink-protection (热链接保护设置的屏幕截图)

要在cPanel中执行第1步,请转到热链接保护,选中"允许直接请求旁边的框。"然后在cPanel中执行第2步,同时将此行添加到您希望允许访问的URL列表中:



($|(http|https):\/\/.*(google\.com|yahoo\.com|bing\.com|facebook\.com|fbcdn\.net))




然后保存或提交。

要通过编辑您网站的.htaccess来做到这一点,一旦您创建了备份,找到与热链接阻止相关的文件区域 - 对我而言,它就在我的.htaccess的末尾,不知道它会在哪里。

如果您不确定要查找的内容,可以在文件中搜索jpg,因为重写规则将包含目标文件扩展名(如png,jpg,jpeg等)

这就是整个热链接阻止部分对我来说的样子:



RewriteCond %{HTTP_REFERER} !^http://yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://dns.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://dns.yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.dns.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.dns.yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://dns.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://dns.yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.dns.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.dns.yoursitename.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.yoursitename.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.yoursitename.com$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]




我确信有一种方法可以集中所有这些规则,但我个人不知道它是什么,我喜欢把我的篡改工作降到最低,因为我'我对语法不太满意。

要执行第1步,在此部分的顶部,您可以添加此行以允许直接请求,这与检查cPanel中的框到"允许直接请求":



RewriteCond %{HTTP_REFERER} !^$




然后执行第2步并将Facebook,fbcdn(Facebook的CDN或内容传送网络)以及主要搜索引擎添加为允许引荐者(请注意,此语法更加简化,并且包含https ://,http://,www和网站的非www版本):



RewriteCond %{HTTP_REFERER} !^($|(http|https):\/\/.*(fbcdn\.net|facebook\.com|google\.com|yahoo\.com|bing\.com)) [NC]