几个月后,该网站从各大搜索引擎的搜索结果中消失了,我终于找到了一个可能的原因。
我使用 WebBug 来调查服务器标头。如果请求是 HEAD 或 GET,请查看差异。
HEAD 发送数据:
HEAD / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
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
GET 发送数据:
GET / HTTP/1.1
Host: www.attu.it
Connection: close
Accept: */*
User-Agent: WebBug/5.0
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
现在,浏览器默认发送一个 GET 请求(至少这是 firebug 所说的)。爬虫是否可以发送 HEAD 请求?如果是这样,为什么只有这台服务器以 403 响应,而我正在维护的其他站点的其他服务器却没有?
如果这很重要,.htaccess 中唯一的一行是(除非我的客户更改了它,因为他们不想让我访问他们的服务器)
AddType text/x-component .htc
更新
感谢@Ryk。FireBug 和 Fiddler 都发送 GET 请求,得到 200(或 300)个响应。正如预期的那样。所以我猜这要么是服务器设置错误(尽管这很奇怪,因为托管来自一家拥有数百万客户的大公司)或者他们放在 .htaccess 中的东西。他们将不得不让我调查他们的帐户。
我的问题的第二部分是这是否可能是该网站没有出现在任何搜索引擎中的原因(site:www.attu.it没有给出任何结果)。任何想法?
更新 2
经过一番摆弄,结果发现根目录中有 phpMyAdmin robots-blocking .htaccess,这导致任何来自机器人的请求都被发送回 403 Forbidden