当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP教程:在IIS环境下自己设置404页面

ASP
ASP连接SQL2005数据库连接代码
ASP程序与SQL存储过程结合使用详解
asp 小偷采集程序原理与常用函数方法
防盗链接ASP函数
asp将table生成excel文件(xls)
asp实现新评论自动发短信提示的代码
asp最简单的生成验证码代码
ASP 常见对象总结(熟悉一下利用以后的开发使用)
ASP UTF-8编码生成静态网页的函数
ASP+FSO生成的网页文件默认编码格式以及转换成UTF-8编码方法
asp Access数据备份,还原,压缩类代码
asp fso操作类
ASP 自动采集实现代码
asp 一些支付接口
ASP 递归调用 已知节点查找根节点的函数
用asp实现读取文件的最后一行的代码
用asp实现的获取文件夹中文件的个数的代码
ASP与Excel结合生成数据表和Chart图的代码
iis7 ASP+Access数据库连接错误
ASP 日期的加减运算实现代码

ASP教程:在IIS环境下自己设置404页面


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 41 ::
收藏到网摘: n/a

IIS默认的错误页是很不友好的,很多人看到默认的错误页时都会说:网站打不开了!白白损失了这部分流量。而如果错误页直接跳转到首页又对搜索引擎很不友好,搞不好首页还会被封掉。所以根据情况,有两个方法解决这个问题:

    如果是博客等内容型的网站,可以返回一个带有404错误的搜索框让访客搜索,若是电子商务型网站,则可以返回一个带有404错误的进度条进行跳转。这两种方法即照顾了访客又顾及到了SEO。

    可以在Google webmaster tools中查看自己网站错误页有多少。

    修改默认错误页的方法很简单:在IIS中右键单击要管理的网站,在自定义错误中设置404为相应的错误信息页。这里有两种方式:

    1、如果“消息类型”你选择的是“文件”,则只能使用.html或htm结尾的文件,否则用户访问错误页时会出现代码。用这种方式设置的错误页,虽然.html文件中没有输出404状态,但IIS执行后会自动输出404状态。

    2、如果你“消息类型”选择了“URL”,则必须用asp文件(因为只有在asp文件中才能设置404状态),否则访问错误页时会返回200状态码。还要在asp文件中加上:

    <%Response.Status = "404 Not Found" %>

    如果你希望定时跳转到首页,则也有两种方法:

    1、利用meta标签的refresh进行跳转

    <meta http-equiv="refresh" content="3;url=http://www.yahoo.com/?xxx">

    据Google中文博客管理员介绍,Yahoo就使用的此方法进行跳转。

    2、使用js进行跳转

<script style="text/javascript">
  setTimeout("testTime()",2500);
  function testTime() {
  location = "http://www.ruanchen.com/quot;;
  }
</script>

    我感觉使用js的方法好一些,因为meta标签跳转担心搜索引擎会识别为“200”或“302”见这里的这段话:

    常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类404页面可能返回“200”状态码,也可能返回“302临时重定向”,但不论哪种,从SEO技术角度看,均不是一种合适的选择。

    对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302”时,搜索引擎会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当使用302重定向的情况存在很大的风险。

    在网上看到的几个注意点:

    1、切记不要将404错误转向到网站主页,否则可能会导致主页在搜索引擎中消失。

    2、切记不要使用绝对URL,如果使用绝对URL返回的状态码是“302”+“200”(已测试)。

    3、在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码(这点与我自己测试的不一样,我选择了相对URL,最终用firebug测试的结果是404)