【发布时间】:2011-06-30 03:59:58
【问题描述】:
我正在尝试创建一个 404 错误页面,目前我已完成以下所有操作/尝试了以下所有操作来尝试完成此操作。当用户输入时:
它按预期工作。但是如果用户输入:
如果没有 .aspx,那么 IIS7 会自行处理问题,我会看到 IIS7 附带的可爱错误页面。目标是该站点仅使用 404 状态代码进行重定向(因此不是 200 或 302 重定向)。我在这两种网络配置中都尝试过:
<customErrors mode="On" defaultRedirect="~/error/Default.aspx redirectMode="ResponseRewrite">
<error statusCode="404" redirect="~/error/NotFound.aspx" />
</customErrors>
这适用于带有 .aspx 文件扩展名的 url,但不适用于没有扩展名的 URL。与 global.asax 中的这种方法相同
void Application_Error(object sender, EventArgs e)
{
var serverError = Server.GetLastError() as HttpException;
if (serverError != null)
{
if (serverError.GetHttpCode() == 404)
{
Server.ClearError();
Server.Transfer("~/error/NotFound.aspx");
}
Server.Transfer("~/error/Default.aspx");
}
}
同样的结果出现在这个:(我最后的尝试是将这个应用到网络配置中:
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
有了这个,我只会得到一个纯白的屏幕,上面什么都没有...... 任何想法或 cmets 将不胜感激!提前致谢!
【问题讨论】:
标签: c# asp.net iis-7 http-status-code-404