HEAD请求收到"403禁止"而GET"200 ok"?

mjs*_*tti 7 bots get head http-headers

几个月后,网站从每个主要搜索引擎的搜索结果中消失,我终于找到了可能的原因.

我使用WebBug来调查服务器头.如果请求是HEAD或GET,请查看差异.

HEAD发送数据:

HEAD / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
Run Code Online (Sandbox Code Playgroud)

HEAD收到的数据:

HTTP/1.1 403 Forbidden
Date: Tue, 10 Aug 2010 23:01:00 GMT
Server: Apache/2.2
Connection: close
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)

GET已发送数据:

GET / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
Run Code Online (Sandbox Code Playgroud)

GET收到的数据:

HTTP/1.1 200 OK
Date: Tue, 10 Aug 2010 23:06:15 GMT
Server: Apache/2.2
Last-Modified: Fri, 08 Jan 2010 08:58:01 GMT
ETag: "671f91b-2d2-47ca362815840"
Accept-Ranges: bytes
Content-Length: 722
Connection: close
Content-Type: text/html

// HTML code here
Run Code Online (Sandbox Code Playgroud)

现在,浏览器默认发送GET请求(至少这是firebug所说的).抓取工具是否可能发送HEAD请求?如果是这样,为什么只有这个服务器响应403,而其他站点的其他服务器我没有?

如果它很重要,.htaccess中唯一的行是(除非我的客户更改它,因为他们不想让我访问他们的服务器)

AddType text/x-component .htc
Run Code Online (Sandbox Code Playgroud)

更新
谢谢@Ryk.FireBug和Fiddler都发送GET请求,获得200(或300)个响应.正如所料.所以我猜这可能是服务器设置不好(尽管很奇怪,因为托管来自拥有数百万客户的大公司)或者他们放在.htaccess中的东西.他们将不得不让我调查他们的帐户.

我的问题的第二部分是,如果这可能是网站没有出现在任何搜索引擎的原因(网站:www.attu.it没有给出结果).任何想法?

更新2
经过一些摆弄后,事实证明根目录中有phpMyAdmin机器人阻塞.htaccess,导致机器人的任何请求被发送回403 Forbidden

Ryk*_*Ryk 1

我建议安装 Fiddler 并仔细查看请求。我有时会看到页面上需要身份验证的文件夹中的图标会导致返回 403。

Fiddler 会给你一个好主意,你也可以尝试 Firefox 并安装 FireBug 插件并检查页面是否有错误。

查看该网站,我在 favicon.ico 上收到了一堆 404 错误,但除此之外,当我执行一个简单的 GET 请求时,我收到了 200 OK,但是当我执行 HEAD 时,我也收到了 403。现在查看一下。

更新:我认为这可能是 Apache 服务器上的配置,但不是 100% 确定。http://hc.apache.org/httpclient-3.x/methods/head.html

UPDATE2:阅读此http://www.pubbs.net/200811/httpd/17210-usershttpd-how-to-reject-head-request.html让我相信您的Apache服务器可以设置为拒绝HEAD请求。在这种情况下,它将返回 403。