### HTTP 404 页面配置详解 #### 一、引言 在Web开发过程中,当用户尝试访问不存在或已移除的网页时,通常会遇到HTTP状态码404(Not Found)。404错误表明服务器无法找到请求的资源。为提供更好的用户体验,开发者常常自定义404错误页面来引导用户返回网站的其他部分。本文档将详细介绍如何在Asp.Net环境中配置404错误页面,并解释与之相关的500错误页面配置。 #### 二、基础知识 ##### 1. **HTTP状态码** - **404 Not Found**:表示服务器无法找到客户端请求的资源。 - **500 Internal Server Error**:表示服务器遇到了意外的情况,无法完成对请求的处理。 ##### 2. **Asp.Net中的Custom Errors** - **`<customErrors>`**:该标签用于配置Asp.Net应用程序中出现异常时的行为。可以通过设置模式(mode)属性来控制错误页面的行为。 - `Off`: 关闭自定义错误页面,显示实际错误信息。 - `RemoteOnly`: 对远程用户显示自定义错误页面,对本地用户显示实际错误信息。 - `On`: 总是显示自定义错误页面。 ##### 3. **IIS中的HttpErrors** - **`<httpErrors>`**:此标签用于配置IIS服务器中的错误响应。它可以替换默认的IIS错误页面,为用户提供更友好的错误提示信息。 #### 三、配置步骤 ##### 1. **使用`<httpErrors>`配置404和500错误** - 在IIS7及以上版本中,可以使用`<httpErrors>`标签来自定义错误页面。下面是一个示例配置: ```xml <httpErrors errorMode="Custom" existingResponse="Replace"> <removestatusCode="403" subStatusCode="-1"/> <removestatusCode="404" subStatusCode="-1"/> <error statusCode="403" prefixLanguageFilePath="" path="/403.png" responseMode="ExecuteURL"/> <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL"/> </httpErrors> ``` - 上述代码中: - `errorMode="Custom"`:表示启用自定义错误页面。 - `existingResponse="Replace"`:表示替换现有的响应。 - `<remove>`:删除指定的状态码。 - `<error>`:定义具体的错误页面路径和响应模式。 ##### 2. **使用`<customErrors>`配置404和500错误** - Asp.Net应用中可以使用`<customErrors>`标签来自定义错误页面。下面是一个示例配置: ```xml <system.web> <customErrors mode="On" defaultRedirect="Error.html"> <error statusCode="403" redirect="/Error403"/> <error statusCode="404" redirect="/Error404"/> <error statusCode="500" redirect="/Error500"/> </customErrors> </system.web> <system.webServer> <httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL"> <removestatusCode="403"/> <removestatusCode="404"/> <removestatusCode="500"/> <error statusCode="403" responseMode="ExecuteURL" path="/Error403"/> <error statusCode="404" responseMode="ExecuteURL" path="/Error404"/> <error statusCode="500" responseMode="ExecuteURL" path="/Error500"/> </httpErrors> </system.webServer> ``` - 以上代码中: - `<customErrors>`:配置了Asp.Net级别的错误处理。 - `<httpErrors>`:配置了IIS级别的错误处理。 - `defaultRedirect`:默认重定向页面。 - `responseMode`:响应模式,包括`ExecuteURL`和`Redirect`两种方式。 ##### 3. **配置细节解析** - **`responseMode`属性**:定义了错误页面的处理方式。 - `ExecuteURL`:执行URL指向的资源。 - `Redirect`:重定向到指定URL。 - **`existingResponse`属性**:定义了如何处理已经存在的响应。 - `PassThrough`:传递现有响应。 - `Replace`:替换现有响应。 - `Auto`:自动选择。 #### 四、注意事项 - 在配置时要注意`<httpErrors>`和`<customErrors>`之间的区别及协同工作。 - `mode`属性的选择会影响错误页面的显示方式。 - 在实际应用中,可以根据需要调整配置,如在生产环境中设置`mode="RemoteOnly"`,以避免泄露敏感信息。 #### 五、案例分析 - **案例1:URL Error StatusCode** - `/aaaaaa`:`httpErrors` 404 - `/aaaaaa.aspx`:`customErrors` 404 - `/aaaaaa.jpg`:`httpErrors` 404 - `/throw500.apx`:`customErrors` 500 - `/throw500`:`customErrors` 500 - **案例2:自定义错误页面配置** - 当设置了`<customErrors mode="RemoteOnly" defaultRedirect="Error.html">`时,对远程用户显示自定义错误页面,对本地用户显示实际错误信息。 - 当设置了`<httpErrors errorMode="DetailedLocalOnly" existingResponse="Auto" defaultResponseMode="ExecuteURL">`时,对本地用户显示详细错误信息,对远程用户显示自定义错误页面。 #### 六、总结 通过以上介绍,我们可以了解到,在Asp.Net和IIS环境下配置自定义404和500错误页面的方法。这些配置不仅可以提升用户体验,还可以帮助开发者更好地管理和展示错误信息。在实际部署时,还需要根据具体情况调整配置参数,确保既能提供良好的用户体验,又能保护系统安全。
网址:http://www.cnblogs.com/TiestoRay/p/4723996.html
Asp.Net customErrors与httpErrors的区别
先看一下简单的对比
customErrors
Asp.Net级别的错误处理程序,只处理Asp.Net应用抛出的异常(404,403,500。。)
在IIS7+的服务器依然可用(IIS7之前就引进了)
静态文件(如.jpg,.htm,.js等)不会被处理
httpErrors
IIS级别的错误信息处理程序,IIS根据请求指定错误页面
自IIS7引进
处理包括ASP.NET应用及ASP.NET之外的应用(ASP.NET能管的 它会管,ASP.NET不能管得它也管)
所有的文件和URL都处理
从对比中能看出 在IIS7之后 就没必要再用customErrors了,一切httpErrors都可以办了。
复制代码
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="/403.png" responseMode="ExecuteURL" />
<error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
复制代码
其实还可以用一个clear标签代替多个remove。如下
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 本资源库是关于“Java Collection Framework API”的参考资料,是 Java 开发社区的重要贡献,旨在提供有关 Java 语言学院 API 的实践示例和递归教育关系 .zip
- 插件: e2eFood.dll
- 打造最强的Java安全研究与安全开发面试题库,帮助师傅们找到满意的工作.zip
- (源码)基于Spark的实时用户行为分析系统.zip
- (源码)基于Spring Boot和Vue的个人博客后台管理系统.zip
- 将流行的 ruby faker gem 引入 Java.zip
- (源码)基于C#和ArcGIS Engine的房屋管理系统.zip
- (源码)基于C语言的Haribote操作系统项目.zip
- (源码)基于Spring Boot框架的秒杀系统.zip
- (源码)基于Qt框架的待办事项管理系统.zip