首页 > 开发 > IIS > 正文

注册asp.net 4.0 到iis

2015-08-30 23:01:25  来源: 网友分享

IIS自定义404错误页面设置

自定义404页面返回不当状态码如“200”等给网站最终SEO效果带来的不利影响,因此,确保自定义的404错误页面能够返回“404”状态码是极为重要的,也是网站优化与SEO的基本要求。

HTTP404对SEO的影响

  自定义404错误页面是提供用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是 “200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎而言,这则是相当重要的。当搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题。对搜索引擎而言,特别是 Google,不但很难获得信任指数TrustRank,也会大大降低Google对网站质量的评定。


自定义404错误页使用Meta Refresh返回“302”状态码


  常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类404页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO技术角度看,均不是一种合适的选择。对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302”时,搜索引擎会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当使用302重定向的情况存在很大的风险。

确保自定义404错误页面能够返回“404”状态码

  在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。
大家可以下载ieHTTPHeadersSetup.exe安装,这是一个在ie下面显示http头信息的工具,安装时确认关闭所有ie窗口,然后从新启动系统,然后打开ie. 在菜单栏察看下面选择浏览器栏,然后选择,ieHTTPHeaders,ie下面就会出现一个窗口,用来显示http头信息,我们可以通过它看到浏览器和服务器的http信息交流。

  IIS/ASP.net下设置404错误页面

  首先,修改应用程序根目录的设置,打开 “web.config” 文件编辑,在其中加入如下内容:

 

   <configuration>
  <system.web>
  <customErrors mode=”On” defaultRedirect=”error.asp”>
  <error statusCode=”404″ redirect=”notfound.asp” />
  </customErrors>
  </system.web>
  </configuration>

 
 


注:上文例中“error.asp”为系统默认的404页面,“notfound.asp”为自定义的404页面,使用时请修改相应文件名。
然后,在自定义的404页面“notfound.asp”中加入:
<%
Response.Status = “404 Not Found”
%>
这样,便可以保证IIS能够正确地返回“404”状态码

(四)在IIS/ASP.net下设置404静态页面

  设置静态404错误页面的方法则比较简单,在IIS管理器中右键单击要管理的网站,打开“属性”中的“自定义错误信息”页,为“404”设定相应的错误信息页即可。不过,此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。

  具体操作如下,删除WINDOWS\Help\iisHelp\common文件夹的所有文件,这些都是iis的默认错误信息文件,并没有什么用,然后在这个目录中添加一个404.htm,内容大致如下

 

  <html>

  <head>
  <meta http-equiv="Content-Language" c>
  <meta http-equiv="Content-Type" c>
  <title>你的titel</title>

  <script>location.href='http://你要转向的页面/' href_cetemp='http://你要转向的页面/';</script>
  </head>

  <body>

  <p>您打开的网页可能更改了地址,请点击下面的链接返回本站首页从新查找</p>
  <p>           你的网站名字 
  <a href="http://你的要转向的页面/">你的网站名字首页</a></p>

  </body>

  </html>

 
 


  然后在IIS管理器中右键单击要管理的网站,打开“属性”中的“自定义错误信息”页,为“404”设定你刚才建立的文件。消息类型一定要选择“文件”。然后确定退出


  ie浏览器有一个特殊的限制,如果自定义页面小于500字节,就不会显示这个自定义的错误页面,而是显示那个默认的404错误页面,(你一定奇怪,我们不是删除了那个默认的404页面了吗,对了,我们在服务器上删除了,但ie本身也有这个文件别忘了iis和ie都是ms的东西,他们的那个iis错误页面是一模一样的,刚开始也把我迷惑了)ie的这个功能在高级选项里面有个开关,就是那个“显示友好的http错误信息”这个开关默认是打开的,所以,如果自定义的页面太小,我们使用ie根本就看不到自己的自定义页面,ie可能看见404错误,就自动打开自己的错误页面了,但微软也没有把事情做绝,只要自定义的页面大于500字节,ie就认识自定义的页面了,(如果你的自定义页面很小,你可以关闭ie的那个选择测试一下,不过,你不可能要求你网站的访问者都关闭那个选项的)所以,就添加了一份东西,随便填,只要让这个文件够大就行了。最好能把自体颜色弄的和背景一样,这样这个东西就是看不见的,不过也不要紧,这个文件本身就不让人看,它是自动转到别的页面的 这就是
<script>location.href='http://你要转向的页面/';</script>
这句起的作用了。

  最后,你可以用ieHTTPHeadersSetup.exe看一下是不是返回的404状态吗