由于302重定向到错误页面,搜索引擎无法索引asp.net站点

时间:2010-12-06 18:59:16

标签: asp.net seo googlebot

我最难确定我们的Asp.net网站没有在搜索引擎中编入索引的原因 - 整个网站。当我使用谷歌的“获取Googlebot”工具时,它会抛出以下错误。我确保我的网站可以禁用会话(即在web.config中设置sessionMode =“Off”),我在网上搜索,但仍然没有运气。

以下是我从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>

1 个答案:

答案 0 :(得分:4)

我自己找到了答案。

确保在使用前检查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是否存在索引您网站的问题:

  1. 如果您还没有注册google webmastertools。
  2. 转到实验室 - &gt;获取Googlebot
  3. 输入您要检查的网址。然后点击状态链接以查看googlebot找到的内容。如果googlebot返回任何重定向(如302),这通常不是一件好事。如果您网站上的所有网页都有302重定向到您的自定义错误页面,那么您就遇到了问题。 只要googlebot尝试访问它们,您的网页就会抛出错误(未处理的例外)。 查看您的Page_Load()和Init()函数是否存在错误googlebot可能有。您还可以使用名为 curl http://curl.haxx.se/)的酷命令行应用程序测试您的页面。使用此工具,我可以在发布到生产之前在我们的测试服务器上测试该网站(这是您在使用谷歌抓取时每次进行更改时必须执行的操作)。