我使用WebBug来调查服务器标头。如果请求是HEAD或GET,会有区别。
HEAD发送数据:
HEAD / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
接收到的数据:
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
获取已发送的数据:
GET / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
获取接收到的数据:
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
现在,浏览器默认发送GET请求(至少firebug是这样说的)。爬虫是否可能发送HEAD请求?如果是这样,为什么只有这个服务器响应403,而我维护的其他网站的其他服务器没有这种情况?
如果这很重要,在.htaccess中唯一存在的行是(除非我的客户更改了它,因为他们不想给我访问他们的服务器)
AddType text/x-component .htc
更新
感谢@Ryk。 FireBug和Fiddler都发送GET请求,得到200(或300)响应。正如预期的那样。所以我想这要么是服务器设置有问题(尽管很奇怪,因为托管公司拥有数百万客户),要么是他们在.htaccess文件中放置了一些东西。他们必须让我查看他们的帐户。
我提出的第二个问题是是否会导致网站在任何搜索引擎中都不出现(site:www.attu.it没有结果)。有什么想法吗?
更新2
经过一些折腾,发现根目录中存在phpMyAdmin机器人阻止的.htaccess文件,导致来自机器人的任何请求都会返回403 Forbidden。