我试图让自定义错误页面适用于任何未经处理或不是磁盘上有效文件的 URL。
我现在有以下设置:
<system.web>
<customErrors mode="On" defaultRedirect="~/Error">
<error statusCode="404" redirect="~/Error/Error404" />
<error statusCode="500" redirect="~/Error" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Detailed" defaultResponseMode="ExecuteURL">
<remove statusCode="404" />
<remove statusCode="500" />
<error responseMode="ExecuteURL" statusCode="404" path="/Error/Error404" />
<error responseMode="ExecuteURL" statusCode="500" path="/Error" />
</httpErrors>
</system.webServer>
这会正确重定向以下 URL:
/test
/test/foo/bar
但是,任何包含句点的内容都会给出以下消息:
- 模块 IIS Web 核心
- 通知 MapRequestHandler
- 处理 程序静态文件
- 错误代码
0x80070002
- 请求的网址
https://localhost/test.txt
- 物理路径
C:\foo\test.txt
- 登录方法 匿名
- 登录用户 匿名
我需要这些 URL 来重定向到我的自定义错误页面。