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

我有最难的时间来确定我们的Asp.net网站的原因没有得到搜索引擎索引 - 整个网站。 当我使用谷歌的“Fetch As 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>

我自己找到了答案。

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

  • 如果您尚未注册Google webmastertools,请注册。
  • 转到实验室 - >抓取为Googlebot
  • 输入您想要检查的网址。 然后点击状态链接查看找到的Googlebot。 如果googlebot返回任何重定向(如302)通常不是一件好事。 如果您网站上的所有网页都重定向到您的自定义错误页面,那么您遇到了问题。 这意味着每当googlebot尝试访问它们时,您的网页都会抛出一个错误(未处理的异常)。 查看您的Page_Load()和Init()函数,以了解Googlebot可能存在的错误。 您还可以使用名为curl的酷炫命令行应用程序(http://curl.haxx.se/)来测试您的页面。 使用此工具,我可以在发布到产品之前在我们的测试服务器上测试网站(这是每次使用Google抓取时进行更改时必须执行的操作)。
  • 链接地址: http://www.djcxy.com/p/49223.html

    上一篇: Search engines not able to index asp.net site due to 302 redirects to Error page

    下一篇: How can I trace ASP.NET on a per request basis