在我在共享主机提供商中发布的 ASP.NET 3.5 网站中,我已经像这样配置了我的 web.config 文件:
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="AccessDenied.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
如果用户请求的页面不存在(例如“www.example.com/NotExistPage.aspx”),用户将被重定向到我们预期的 FileNotFound.htm 页面。
但是,如果用户请求一些地址,例如:“www.example.com/NotExistDirectory”,而没有 .aspx 扩展名,用户将遇到 IIS 7.5 错误页面:
HTTP 错误 404.0 - 未找到 您要查找的资源已被删除、名称已更改或暂时不可用。
详细错误信息:
Module IIS Web Core
Notification MapRequestHandler
Handler StaticFile
Error Code 0x80070002
Requested URL http://www.example.com:80/NotExistDirectory
Physical Path D:\Websites\example\example.com\wwwroot\NotExistDirectory
Logon Method Anonymous
Logon User Anonymous
这是一个不友好的黄页,我们没想到。
我想知道在 webconfig 中设置 customeError 是否不支持这种类型的地址?我怎样才能防止用户看到这个黄页。
编辑: 感谢大卫的回答,但我找到了实际原因和正确的解决方案。请看我的回答。