程序员人生 网站导航

IIS环境下ASP自定义404错误页的方法及说明

栏目:服务器时间:2014-02-03 00:14:16

昨天晚上有位在企业当网管的朋友来咨询小编,说他们的网站原来是Asp的,打算改版为php(使用dedecms)的,但是原来很多URL无法找到了,于是来请教如何处理404的问题,下面我们一起来分析并进行一下相关设置(部分资料来自网络)

大家都知道,IIS默认的错误页是很不友好的,很多人看到默认的错误页时都会说:网站打不开了!白白损失了这部分流量。而如果错误页直接跳转到首页又对搜索引擎很不友好,搞不好首页还会被封掉。所以根据情况,有两个方法解决这个问题:如果是博客等内容型的网站,可以返回一个带有404错误的搜索框让访客搜索;如果是电子商务型网站,则可以返回一个带有404错误的进度条进行跳转。这两种方法即照顾了访客又顾及到了SEO。

修改默认错误页的方法很简单:在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.wfuwu.com/?xxx">

2、使用js进行跳转

<script style="text/javascript">

setTimeout("testTime()",2500);

function testTime(){

location=http://www.liehuo.net;

}

</script>

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

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

几个注意点:

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

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

3、在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码

最后,按照上边的方法设置以后一定要记得检测HTTP返回状态码,如果不是404,则搜索引擎很可能会处罚你的网站。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐