在我的web服务器上,如果我访问一个不存在的页面,它会生成一个适当的404,除非该页面以。aspx结尾。如果无效url以.aspx结尾,IIS将生成标记文件错误:
"这是预编译工具生成的标记文件,不应删除!"
而不是正确的404。我如何使IIS显示/为未知或无效的。aspx页面提供404 ?
例如:
http://www.mysite.com/iDontExist.txt ->生成正确的404http://www.mysite.com/iDontExist.aspx ->标记文件错误而不是404
任何想法?
您需要通过web.config
打开自定义错误 <configuration>
<system.web>
<customErrors defaultRedirect="GenericError.html" mode="On">
<error statusCode="404" redirect="PageNotFound.html"/>
</customErrors>
</system.web>
</configuration>
更多信息可以在MSDN
技巧是将customErrors标签的"重定向模式"设置为" ResponseRedirect "而不是" ResponseRewrite ":
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="customError.aspx" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="customError404.aspx" />
<error statusCode="500" redirect="customError500.aspx" />
</customErrors>
</system.web>