针对非aspx文件的404代码的自定义错误重定向

时间:2014-03-10 12:27:24

标签: asp.net http-status-code-404 .net-2.0 custom-error-pages http-error

我已添加到我的web.config:

<customErrors mode="RemoteOnly" defaultRedirect="~/Pages/Error/Error.aspx">
    <error statusCode="404" redirect="~/Pages/Error/Error404.aspx"/>
</customErrors>

它适用于.aspx页面。 当我尝试输入:http://domainname.com/notExist时,我会得到默认的404。

我尝试了以下建议: 404 Redirecting for non aspx pages

但没有什么对我有用。 有什么想法吗?

我使用.net 3.5,应用程序池管道模式是集成的。

添加<httpErrors>后,我得到: enter image description here

2 个答案:

答案 0 :(得分:1)

试试这个,它将提供单独的状态。然后你可以按照你的要求执行。

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/Pages/Error/Error.aspx">
        <error statusCode="404" redirect="~/Pages/Error/Error404.aspx"/>
    </customErrors>
</system.web>
<system.webserver>
<asp scriptErrorSentToBrowser="true"/>    
    <httpErrors errorMode="Detailed">
          <error statusCode="401" path="/Pages/Error/Error.aspx" responseMode="Redirect" />
          <error statusCode="403" path="/Pages/Error/Error.aspx" responseMode="ExecuteURL" />
          <error statusCode="404" path="/Pages/Error/Error404.aspx" responseMode="ExecuteURL" />
          <error statusCode="500" path="/Pages/Error/Error.aspx" responseMode="ExecuteURL" />
    </httpErrors>
</system.webserver>

答案 1 :(得分:-2)

您需要单独设置其他页面。

尝试这样的事情。

 <system.webserver>
      <httpErrors errorMode="Custom" >
            <remove statusCode="404" subStatusCode="-1" />
             <error statusCode="404" path="~/Pages/Error/Error404.aspx" />
      </httpErrors>
 </system.webserver>