我一直在努力让我的网络应用程序重定向到自定义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”
扩展之外的所有内容答案 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
执行重定向。