4

我一直在尝试让我的网络应用程序重定向到自定义 404 页面。它适用于所有 url,除非它们具有“.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”扩展之外的所有内容

4

3 回答 3

0

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

<error statusCode="404" redirect="error404.htm"/>
于 2012-09-17T22:42:12.327 回答
0

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

于 2012-09-19T07:05:32.007 回答
0

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

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

该函数FileNoteFound_Error进行重定向。

于 2012-09-26T18:48:03.403 回答