.aspx扩展名的自定义404页面错误

时间:2012-09-17 22:05:50

标签: asp.net .net http-status-code-404 episerver

我一直在努力让我的网络应用程序重定向到自定义404页面。它适用于所有网址,除非它们具有“.aspx”扩展名

服务器是Windows Server 2008,以下是我在web.config中的以下设置(使用google.com作为简单示例):

<customErrors defaultRedirect="http://www.google.com" mode="On" redirectMode="ResponseRedirect"></customErrors>

<httpErrors errorMode="Custom">
<clear />
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" />
<error statusCode="500" prefixLanguageFilePath="" path="/404-Page/" responseMode="ExecuteURL" />
</httpErrors>

HTTP错误再次适用于除“.aspx”

扩展之外的所有内容

3 个答案:

答案 0 :(得分:0)

customErrors元素提供有关ASP.NET应用程序的自定义错误消息的信息。尝试将error子元素添加到customErrors元素中,以获取要捕获的特定HTTP错误代码。

<error statusCode="404" redirect="error404.htm"/>

答案 1 :(得分:0)

我在IIS6中遇到了类似的问题。我最终在global.asax中的Application_Error中处理它。为了使它工作,我不得不将404自定义页面设置为不存在的aspx页面(如果我将它设置为现有的aspx页面,它将被EPiServer的内部错误处理吞没......)

答案 2 :(得分:0)

为了解决这个问题,我们最终必须创建一个劫持任何错误的模块,并将用户转移到我在web.config(customErrors下)中设置的自定义404页面。每当应用程序出错时,模块都会添加一个事件处理程序:

    public void Init(HttpApplication context)
    {
        context.Error += new EventHandler(FileNotFound_Error);
    }

函数FileNoteFound_Error执行重定向。