问答 百科手机端

在IIS/ASP.net/Apache服务器中设置404、500等错误页面

2012-11-17 14:33

当用户连接站点上一个不存在的页面能URL重定位到自己给出 的页面,也就是自定义404错误页!

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

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

1 <configuration>
2 <system.web>
3 <customErrors mode="On" defaultRedirect="error.asp">
4 <error statusCode="404″ redirect="notfound.asp" />
5 </customErrors>
6 </system.web>
7 </configuration>

此例中"error.asp"为系统默认的404页面,"notfound.asp"为自定义的404页面,使用时请修改相应文件名。然后,在自定义的404页面"notfound.asp"中加入:

1 <%
2 Response.Status = "404 Not Found"
3 %>

这样,便可以保证IIS能够正确地返回"404"状态码。

2、Apache服务器404页面的设置方法

在.htaccess 文件中加入代码:ErrorDocument 404 /Error.html,建立一个简单的html404页面命名 Error.html,把 Error.html放置在网站根目录即可。这用到了apache的mod_rewrite模块和.htaccess文件的正则写法。自己摸索出两种写法

第一种:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /err404.html [L]

解释一下RewriteCound是指定义重写发生的条件,%{ NAME_OF_VARIABLE }服务变量中的REQUEST_FILENAME是匹配完整文件路径或者目录 -f是指文件 -d指目录 !取反,那样上面可以理解为URL不存在的文件名或者目录时,条件为真,就执行重定义规则也就是跳到err404.html

第二种:
ErrorDocument 404 /404.html

注意:

不要将404错误直接转向到网站首页,这将导致首页不被收录;

/404.html 前面不要带主域名(即不要设置成http://www.wendabaike.com/404.html的方式),否则返回的状态码是302或200状态码。

ErrorDocument 还可以定义其他错误如500 401 403等,后面的参数是重定义的URL

说明:

你也可以在网站访问页面出现404、403错误信息时,自动跳转至首页或另一个网站,方法如下:

ErrorDocument 403 /index.php
ErrorDocument 404  http://www.fabu114.com 以此类推。。。 当然出于用户体验性方面的考虑,不推荐做自动跳转至首页或者其他网站的设置。
热门