【问题标题】:Error 403 when clicking "Share"单击“共享”时出现错误 403
【发布时间】:2014-02-20 13:13:08
【问题描述】:

点击“分享”时网页 sn-p 出现错误 403

这发生在某些但不是所有页面上。

例如this page

当你点击“分享”时,它会在弹出窗口中打开this

出现以下错误:

403 - 错误:403

...如果您遇到错误...请联系管理员...

WWW.TENSTARS.RU

如果我在 facebook 调试器中打开页面,问题就会消失:

注意:不要在 facebook 调试器中打开页面,它会删除错误,其他人将无法看到它!

https://developers.facebook.com/tools/debug/

但错误再次出现在不同的页面上。

我尝试使用官方分享代码,但没有帮助。

我怀疑问题是由于 facebook 爬虫未能下载某些页面然后使用“失败”副本引起的,但我想调试/找出实际原因。

【问题讨论】:

  • 一个特定问题可能是 mod_security,因为 Facebook 机器人已损坏:消息:使用代码 403 拒绝访问(阶段 2)。字符串匹配 REQUEST_HEADERS:Range 处的“bytes=0-”。 [file "/etc/httpd/modsecurity.d/activated_rules/modsecurity_crs_20_protocol_violations.conf"] [line "427"] [id "958291"] [rev "2"] [msg "Range: field exists and begin with 0." ] [数据“字节=0-524287”] [严重性“警告”] [版本“OWASP_CRS/2.2.8”] [成熟度“6”] [准确性“8”] [标签“OWASP_CRS/PROTOCOL_VIOLATION/INVALID_HREQ”]

标签: facebook facebook-sharer


【解决方案1】:

我设置了一些 Facebook 机器人日志记录

Facebook bot tracking in /index.php
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

点击 Facebook 分享按钮不会触发 Facebook 机器人下载页面。 Facebook bot 的网页download (Crawl) 由 JavaScript SDK 触发,没有 SDK 无法加载分享窗口。 机器人爬取也由 facebook 上的任何地方的publishing the URL 触发。

Facebook SDK

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=368997699815031";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

Facebook 每 1 个请求下载 2 个页面(取决于 SDK 配置):

[2014-03-13 10:34:57][facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)] /films/events/mtv-movie-awards-2014.html
[2014-03-13 10:34:59][facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)] /films/events/mtv-movie-awards-2014.html?fb_locale=ru_RU

如果 Facebook 下载了一个错误状态的页面,Facebook 不会重新下载它,除非你用 Facebook lint debugger tool 下载它或者我不知道的超时时间用完。 (除非您在 og:ttl 中手动指定此超时)

在我的例子中,facebook SDK 在页面仍在编辑时请求了该页面,并缓存了它给出的 403 响应。

预览/故事(或任何名称)显示的文本和状态代码与 Facebook 机器人下载网页时您的网站返回的文本和状态代码相同。

【讨论】:

    【解决方案2】:

    查看您的 htaccess 文件并测试 RewriteCond。 这是此错误 403 的原因并分享 facebook。

    您可以使用 facebook 工具测试您的分享页面:https://developers.facebook.com/tools/debug/

    【讨论】:

      【解决方案3】:

      使用此链接再次抓取 https://developers.facebook.com/tools/debug/og/object/ 并确保您存在 facebook 元标记,例如 og:url、og:type、og:title、og:description 等,例如如下所示,

      <meta property="og:url" content="http://www.kktcfidan.com" />
      <meta property="og:type" content="website" />
      <meta property="og:title" content="K&#xfc;&#xe7;&#xfc;k bir hediye, b&#xfc;y&#xfc;k bir iyilik." />
      <meta property="og:description" content="Sevdiklerine ve do&#x11f;aya verece&#x11f;in hediye yemye&#x15f;il bir gelecek olsun." />
      <meta property="og:image" content="http://www.kktcfidan.com/assets/images/facebook_share_photo.jpg" />
      

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2021-08-24
        • 1970-01-01
        • 2022-12-19
        • 2011-07-28
        • 2011-01-06
        • 1970-01-01
        • 2015-06-28
        • 1970-01-01
        相关资源
        最近更新 更多