5

嗨,我遇到了一个超级奇怪的问题。
每当我在 Facebook 上发布指向我网站的链接时,它们都会显示为禁止访问。
该网站本身运行良好,在其他网站上链接时我没有看到这一点。
这可能是服务器配置错误吗?关于在哪里看的任何想法?

这里有一些信息:
我有一个运行 WHM 11.25.0 的专用服务器
我在这里使用 cPanel 11.25.0 托管了 2 个站点

错误消息:

禁止的

您无权访问此服务器上的 /blog/deepwater-horizo​​n-11/。

此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。


Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 服务器位于 www.offshoreinjuries.com 端口 80

更新:
如果有帮助,这是一个示例链接。(注意链接页面直接工作正常)
http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.offshoreinjuries.com%2Fblog%2Fdeepwater-horizo​​n -11%2F&h=834ea

更新和答案:
找到了问题并在下面添加了完整的答案。

4

2 回答 2

6

您必须在某处有一条规则来读取 HTTP_REFERER 并拒绝来自 Facebook 的传入链接。严重地。这就是两行之间发生的事情:

没有推荐人

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com

    HTTP/1.1 200 OK
    Date: Fri, 28 May 2010 09:19:45 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.12
    X-Pingback: http://www.offshoreinjuries.com/blog/xmlrpc.php
    Content-Type: text/html; charset=UTF-8

200 好的,不错。

脸书推荐人

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com
Referer: http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.offshoreinjuries.com%2Fblog%2Fdeepwater-horizon-11%2F&h=834ea

    HTTP/1.1 403 Forbidden
    Date: Fri, 28 May 2010 09:21:04 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    Content-Type: text/html; charset=iso-8859-1

403 禁止,不好。

任何其他推荐人

telnet www.offshoreinjuries.com 80
HEAD /blog/deepwater-horizon-11/ HTTP/1.1
Host: www.offshoreinjuries.com
Referer: http://alvaro.es/

    HTTP/1.1 200 OK
    Date: Fri, 28 May 2010 09:20:36 GMT
    Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635
    X-Powered-By: PHP/5.2.12
    X-Pingback: http://www.offshoreinjuries.com/blog/xmlrpc.php
    Content-Type: text/html; charset=UTF-8

200 再次确定。

您的服务器正在积极拒绝来自 Facebook 的访问者。

于 2010-05-28T09:23:55.207 回答
2

我终于能够深入了解这种行为。
我的主机 HostGator 的默认 mod_security 设置包括一组白名单和黑名单。在检查这些后,我发现.facebook.com/l.php被列入黑名单。
l.php 是一个包装页面,它提供一个警告,表明您将离开 facebook。据我了解,因为这很容易被利用,HostGator 选择基本上将所有出站 Facebook 链接列入黑名单。

我通过.facebook.com/l.php从 mod_security 黑名单中删除解决了我的问题,但是我也可以通过单击 WHM 将我的 mod_security 设置重置为默认值(与 HostGator 配置相比)。

于 2010-05-29T17:52:21.870 回答