8

这些是 web.config 中的代码:

<system.web>
  <customErrors mode="Off" >
  </customErrors>
</system.web>
<system.webServer>
  <httpErrors errorMode="Custom" existingResponse="Replace">
    <clear />
    <error statusCode="404" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" />
    <error statusCode="500" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" />
    </httpErrors>
</system.webServer>

以上设置将仅重定向 404 和 500 的 httpError。

但不是手动添加所有错误代码 400, 401, 403....etc..etc...

我们可以将其设置为将所有错误重定向到相同的 url 而无需输入所有错误代码吗?

<error statusCode="400" .....
<error statusCode="401" .....
<error statusCode="403" .....
<error statusCode="404" .....
<error statusCode="xxx" ....
4

2 回答 2

7

httpErrors部分具有defaultPath属性。

<system.webServer>
  <httpErrors defaultPath="Error.html" defaultResponseMode="File">
    <clear />
  </httpErrors>
</system.webServer>

http://www.iis.net/configreference/system.webserver/httperrors

但是,我不使用它,因为defaultPath默认情况下被锁定在 IIS Express 中。需要编辑%homepath%\Documents\IISExpress\config\applicationHost.config才能解锁。

<httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
  <!-- ... -->
</httpErrors>
于 2016-01-18T11:52:07.173 回答
6

尝试这个,

添加 web.config 文件。

<system.webServer>
  <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
    <remove statusCode="500" />
    <error statusCode="500" prefixLanguageFilePath="C:\Contoso\Content\errors"
    path="500.htm" />
 </httpErrors>
</system.webServer>

<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom">
    <remove statusCode="404" />
    <error statusCode="404" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
    <remove statusCode="401" />
    <error statusCode="401" path="/Account/Login.aspx" responseMode="ExecuteURL"/>
    <remove statusCode="501"/>
    <error statusCode="501" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
    <remove statusCode="411"/>
    <error statusCode="411" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
    <remove statusCode="403"/>
    <error statusCode="403" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
</httpErrors>

以及有关此http://www.iis.net/configreference/system.webserver/httperrors的更多信息

于 2013-09-07T09:49:02.073 回答