2014-04-17 35 views
2

我指定自定义错误页在web.config中像这样自定义错误页的内容不能正常显示

<system.web> 
    <customErrors mode="RemoteOnly" defaultRedirect="/Error.html" /> 
</system.web> 

自定义错误页,并正确显示其内容。但是当URL以斜线结尾时,将显示错误页面内容并且不能正确显示。

例如:
www.abc.com/product - >错误页面内容能正确显示
www.abc.com/product/ - >显示不正确的错误页面内容

在此先感谢。

编辑:

当URL比其他任何其它特殊字符“/”结尾,该网址重定向正确的error.html到,但URL以“/”被认为是项目文件夹等结束错误页面显示不正确。纠正我,如果我错了。 任何建议。

+1

如果会发生什么你改变默认的重定向到'〜/ Error.html'? – Carsten

+0

它正确地重定向到Error.html。但是,当URL以正斜杠“/”结尾时,错误页面内容不会清晰地显示出来 – kk1076

+1

看起来您希望尝试将“目录浏览”重定向到您的错误页面。我不确定如果没有注册路由,这是可能的,就像MVC站点那样。您仍然可以在正常的ASP.NET网站中注册路由,但您必须设置IIS,以便所有请求都由'aspnet_isapi.dll'处理。 –

回答

1

试试这个:

<customErrors mode="On" defaultRedirect="Error"></customErrors> 

,并在您的视图 - >共享文件夹的名称为“Error.cshtml”

在查看Error.cshtml视图顶部添加这一行:

@model System.Web.Mvc.HandleErrorInfo 

...your code..... 

希望这有助于

+0

我没有尝试在MVC中。它是一个正常的asp.net项目 – kk1076

1

你是想重定向到您的错误页面,当用户尝试迪教区浏览。这通常是一个HTTP错误,由服务器处理,与ASP.NET处理分开处理。

如果你正在使用IIS7 +,那么你可以从How to disable Directory Browse in Web.Config采取解决方案结合在一起,并Asp.net - Web.Config - Custom Errors

具体到你的情况,你想在你的web.config类似于块:

<system.webServer> 
    <directoryBrowse enabled="false" /> 
    <httpErrors errorMode="Custom"> 
    <remove statusCode="403"/> 
    <error statusCode="403" path="~/Error.aspx" responseMode="Redirect"/> 
    </httpErrors> 
</system.webServer> 
相关问题