为什么yandex返回405,当google返回200 Ok?

时间:2010-11-02 21:17:26

标签: indexing seo

我遇到了网站http://huti.ru的问题。当试图在http://webmaster.yandex.ru/addurl.xml(Yandex - 俄罗斯搜索引擎)中添加任何页面时写道“服务器返回状态代码http 405(预期代码200)。”什么可以为brawusers和yandex履带行动者提供这样不同的行为? (谷歌索引像正常一样)

环境:tomcat,java 6

3 个答案:

答案 0 :(得分:3)

您的服务器不允许HEAD请求。似乎机器人在实际GET之前首先尝试HEAD。

作为 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html 状态:HEAD应该与GET相同,除了它永远不会返回消息体,而只返回特定请求的响应头。

注意:我做了一个简单的

HEAD / HTTP/1.0

请求。与HTTP/1.1 + Host: huti.ru相同。

答案 1 :(得分:1)

检查服务器日志,查找对Yandex请求的响应的实际内容。

HTTP 405是Method Not Allowed,如果用户代理使用了特定资源不支持的HTTP谓词,则通常会返回。

例如,使用Fiddler,我向http://huti.ru发出了多个请求,我收到了HEADGETPOST的200个回复,但TRACE获得了405分。可以想象,Yandex会在发出实际页面请求之前发出TRACEOPTIONS,以确定页面是否存在。

注意:@smilingthax提到您的服务器在HEAD上返回405。但是,从Fiddler发出以下请求对我有用:

HEAD http://huti.ru/ HTTP/1.1
Host: huti.ru
Proxy-Connection: keep-alive
Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.23 Safari/534.10
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

因此,您的问题可能特定于具有特定标头的HEAD请求。

答案 2 :(得分:0)

我认为405表示该页面已被编入索引。