我有一个托管在IIS上的asp.net web表单网站。除错误页面外,所有内容都按预期工作。我在web.config中有如下自定义错误页设置:
<customErrors mode="On" defaultRedirect="error.aspx">
<error statusCode="400" redirect="error.aspx" />
<error statusCode="401" redirect="error.aspx" />
<error statusCode="403" redirect="error.aspx" />
<error statusCode="404" redirect="error.aspx" />
<error statusCode="500" redirect="error.aspx" />
</customErrors>如果我访问mysite.com/x.aspx (x.aspx不存在),它会正确地显示错误页面。但是,如果我访问mysite.com/x (x不存在),浏览器中就会显示aspx源代码(以"<%@ Page Title="“Language="C#”MasterPageFile...“开头)。
对于为什么会发生这种情况以及如何修复,您有什么想法吗?
发布于 2021-03-18 05:08:34
ASP.net不会接收这些“无扩展”请求,而是由静态文件处理程序处理这些请求。
基本上,您需要自己安装URLReWrite模块并将无扩展请求重写/重定向到您的error.aspx页面。有各种各样的examples on SO for handling extensionless URLs
发布于 2021-03-18 21:47:59
尝试在web.conifg文件中使用以下代码:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>确保IIS管理器->功能委派中的错误页设置为读/写。
https://stackoverflow.com/questions/66679893
复制相似问题