这是我从googlebot得到的错误:
HTTP/1.1 302 Found Date: Thu, 02 Dec 2010 23:05:49 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Location: /ErrorPage.aspx?aspxerrorpath=/Default.aspx Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 168 <html><head><title>Object moved</title></head><body> <h2>Object moved to <a href="%2fErrorPage.aspx%3faspxerrorpath%3d%2fDefault.aspx">here</a>.</h2> </body></html>我自己找到了答案.
在使用之前,请务必检查Request.UserLanguages!= null.此外,请确保将CurrentCulture设置为有效的默认值.这两个检查的原因是因为机器人不使用Request.UserLanguages – 它总是为空.浏览器确实使用Request.UserLanguages.换句话说:如果Request.UserLanguages为null,则不要设置CurrentCulture.
这是问题所在:
我站点中的所有aspx页面都继承自继承自System.Web.UI.Page的自定义基类.在使用仅为机器人抛出异常的代码覆盖OnLoad()或init事件之前,这不是问题.我在OnLoad()事件中有这行代码:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages [0]);
从浏览器访问aspx页面时,此代码非常有用.咄!谁不打算使用浏览器……?回答:googlebot和所有其他机器人.
如何检查googlebot是否存在索引您网站的问题:
>如果您还没有注册谷歌webmastertools.
>转到实验室 – >抓取Googlebot
>输入您要检查的网址.然后点击状态链接以查看googlebot找到的内容.如果googlebot返回任何重定向(如302),这通常不是一件好事.如果您网站上的所有网页都有302重定向到您的自定义错误页面,那么您就遇到了问题.这意味着当googlebot尝试访问它们时,您的网页会抛出错误(未处理的异常).通过您的Page_Load()和Init()函数查看googlebot可能存在的错误.您还可以使用名为curl(http://curl.haxx.se/)的酷命令行应用程序测试您的页面.使用此工具,我可以在发布到生产之前在我们的测试服务器上测试该站点(这是您在使用谷歌抓取时每次进行更改时必须执行的操作).