【发布时间】:2011-03-28 03:01:06
【问题描述】:
该网站在各大搜索引擎的搜索结果中消失了几个月后,我终于找到了一个可能的原因。
我使用 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 / 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 请求(至少萤火虫是这么说的)。爬虫是否可以发送 HEAD 请求?如果是这样,为什么只有这台服务器响应 403,而我正在维护的其他站点的其他服务器没有?
如果这很重要,.htaccess 中唯一的一行是(除非我的客户更改了它,因为他们不想让我访问他们的服务器)
AddType text/x-component .htc
更新
谢谢@Ryk。 FireBug 和 Fiddler 都发送 GET 请求,得到 200(或 300)个响应。正如预期的那样。所以我猜这要么是服务器设置错误(尽管这很奇怪,因为托管来自一家拥有数百万客户的大公司)或者他们放在.htaccess 中的东西。他们将不得不让我查看他们的帐户。
我的问题的第二部分是这是否可能是该网站没有出现在任何搜索引擎中的原因(site:www.attu.it 没有给出任何结果)。有什么想法吗?
更新 2
经过一番摆弄,结果发现根目录中有 phpMyAdmin robots-blocking .htaccess,这导致任何来自 robots 的请求都被发送回 403 Forbidden
【问题讨论】:
-
这是服务器的错误,客户端希望修复它,他们应该至少给你一些访问权限。至少,询问他们是否可以看到当前 .htaccess 的副本。
标签: http-headers get bots head