我遇到了一个情况,
我的自定义404页面适用于具有扩展名的网址。
http://www.space.ca/ssss.aspx 自定义页面网址按预期提供,
但是,如果您尝试不带.aspx扩展名的链接 http://www.space.ca/ssss
它转到IIS默认页面。有什么想法吗?
这是我在system.webserver
中的配置 <httpErrors>
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/errors/404.aspx" responseMode="ExecuteURL" />
<error statusCode="500" prefixLanguageFilePath="" path="/errors/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
答案 0 :(得分:2)
我知道这是很久以前发布的,不过这可能有助于其他人......
我有同样的问题,主要是在路径值中有'〜',遗憾的是这不是你的问题,但是如果你按照以下方式那么你应该没问题......
<customErrors mode="On" redirectMode="ResponseRewrite">
<error statusCode="401" redirect="~/Errors/Unauthorized.aspx" />
<error statusCode="403" redirect="~/Errors/Forbidden.aspx" />
<error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
<error statusCode="500" redirect="~/Errors/ServerError.aspx" />
<error statusCode="501" redirect="~/Errors/ServerError.aspx" />
</customErrors>
<httpErrors errorMode="Custom">
<remove statusCode="401" subStatusCode="-1" />
<remove statusCode="403" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<error statusCode="401" path="/Errors/Unauthorized.aspx" responseMode="ExecuteURL" />
<error statusCode="403" path="/Errors/Forbidden.aspx" responseMode="ExecuteURL" />
<error statusCode="404" path="/Errors/PageNotFound.aspx" responseMode="ExecuteURL" />
<error statusCode="500" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
<error statusCode="501" path="/Errors/ServerError.aspx" responseMode="ExecuteURL" />
</httpErrors>
当然,您只需要为要为其创建自定义页面的状态代码添加条目。另请注意 httpErrors 应放在 部分, 部分中的 customErrors 。
您可以添加 customErrors 部分,因为它处理托管代码。 httpErrors 部分将处理所有内容的错误。
请注意最后一件事......当您在本地计算机上进行测试时,ASP.NET和HTTP错误的默认设置是显示本地浏览器的详细信息。您需要设置 customErrors mode =“On”AND httpErrors errorMode =“Custom”才能查看本地计算机上的自定义错误。
可在此处找到更多信息:http://www.iis.net/ConfigReference/system.webServer/httpErrors
答案 1 :(得分:0)
这适合我。
<httpErrors errorMode="Custom" existingResponse="Replace" defaultResponseMode="ExecuteURL">
<clear />
<error statusCode="404" path="~/error404.aspx" responseMode="Redirect" />
</httpErrors>