MVC---404页面配置

参考地址1:http://benfoster.io/blog/aspnet-mvc-custom-error-pages

参考地址2:https://msdn.microsoft.com/en-us/library/ms690497(v=vs.90).aspx

注意:404页面等的配置,在web.config里面配置时:IIS版本不同,配置的方法是不同的,IIS7之前是在system.web里面配置,IIS7之后是在system.webserver节点配置。这点切记,不然不会转到错误页。

1、IIS7之前版本配置方法

    在system.web节点,添加以下代码。mode还可以为RemoteOnly,这是官方推荐的,意思是在服务器端访问会列出错误信息,远程访问才会转到404页面等,本地调试使用On。statusCode填写相应的出错代码500等。

    Asp.Net级别的错误处理程序,只处理Asp.Net应用抛出的异常,静态文件(如.jpg.htm.js等)不会被处理

<customErrors mode="On">
  <error statusCode="404" redirect="~/404.html"/>
</customErrors> 

2、IIS7+版本配置方法

    在system.webServer节点添加以下代码。Custom对应上面的On,还可以为DetailedLocalOnly,默认值,对应上面的RemoteOnly。

    remove节点表示从http错误集合中,清除掉对应错误码的http错误引用。

    error节点responseMode=“ExecuteURL”,表示path只能是当前服务器的一个相对路径的地址页面,不能为绝对地址。当值为Redirect时,表示path必须是一个绝对路径的地址,比如“http://www.baidu.com”。

    所有的文件和URL都处理。

    existingResponse的意思是:
    默认是Auto,这时对于.net异常,会列出.net自带的异常页面,而静态文件会使用我们自定义的。如果是Replace,所有的异常处理都会使用我们自定义的。
    https://docs.microsoft.com/en-us/iis/configuration/system.webServer/httpErrors/
<httpErrors errorMode="Custom" existingResponse="Replace"
> <remove statusCode="404" /> <error statusCode="404" responseMode="ExecuteURL" path="/404.html" /> </httpErrors>
原文地址:https://www.cnblogs.com/zhaoyihao/p/4678668.html