我正在使用ASP.net Web应用程序。
那,当IIS的根(默认网站)上发生异常时,我需要显示一个自定义错误页面。
例如
网址
1. http://xzy <-这是根目录
2. http://xzy/app1/login.aspx <-有效网址
3. http://xzy/app2 <-无效的URL(未托管此类应用程序)
当我在浏览器中输入第一个和第二个URL时,它会将我重定向到登录页面,因为我在根站点上设置了HTTPredirect,如下所示。
<httpRedirect enabled="true" httpResponseStatus="Permanent" destination="http://app1/login.aspx" childOnly="true" exactDestination="true" />
一切正常。
但是当我输入无效的URL时,它可能会向我显示一个自定义错误页面,因为在根站点中也进行了以下设置。
<system.web>
<customErrors defaultRedirect="404.htm" mode="RemoteOnly"></customErrors>
</system.web>
但是它将我重定向到app1的登录页面。
在这里,没有托管名为app2的应用程序。因此,我认为它应该向我显示404.htm页面,但会将我重定向到“ http://xzy/app1/login.aspx”。
我应该进行哪些更改以防止将任何无效的URL重定向到默认应用程序的登录页面?
下面是IIS上根目录(默认网站)的完整web.config文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpRedirect enabled="true" httpResponseStatus="Permanent" destination="http://xyz/app1/login.aspx" childOnly="true" exactDestination="true" />
</system.webServer>
<system.web>
<customErrors defaultRedirect="404.htm" mode="RemoteOnly"></customErrors>
</system.web>
</configuration>
谢谢