2012-04-03 117 views
2

使用IIS 7.5我已经创建,如果没有找到一个静态文件,显示从数据库内容的自定义404(和403.14)错误页面。IIS 7.5自定义404错误页面不工作的Web根目录/默认

换句话说,如果我浏览到http://mysite.com/test/和物理指标或默认的文件是不是在该位置找到,那么IIS执行我的404自定义错误页,其中分析URL,要么显示存储在数据库中的网页,或通知说,无法找到该页面。除了IIS不会为Web根目录索引/默认页显示404页

一切都可以正常使用。

有在网站根目录没有文件 - 这里是我观察到的结果:

  • mysite.com:完全空白页
  • mysite.com/:完全空白页
  • mysite.com /index.aspx:正确显示我的自定义错误页面。
  • mysite.com/default.aspx:正确显示我的自定义错误页面。
  • mysite.com/index.htm:正确显示我的自定义错误页面。
  • mysite.com/anything_else/:正确显示我的自定义错误页面。

我的web.config文件中包含:

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <error statusCode="404" prefixLanguageFilePath="" path="/_page/" responseMode="ExecuteURL" /> 
    <error statusCode="403" subStatusCode="14" path="/_page/" responseMode="ExecuteURL" /> 
</httpErrors> 

我想主页的内容存储在喜欢的网站的动态页面的其余部分的数据库,但经过一番搜索仍无法查出当找不到home索引/默认页面时,如何让IIS显示我的自定义错误页面。

任何帮助/想法将不胜感激。

饲料

回答

3

我结束了使用Web根指数本身的自定义错误页,而不是像“/ _page /”另一页解决这个。

这工作的一切除了SSL重定向,我决定是不是一个足够大的问题,托起项目。

在该系统中,每一页都被明确设置为HTTP或HTTPS。如果用户使用http地址导航到https页面,则他们将重定向到https版本,反之亦然。但是,将根索引用作自定义错误页面意味着此重定向对主页不起作用,因为由于某些原因,IIS不会将页面重定向到自身。

如果任何人有任何想法如何解决这个问题我会非常感谢您的想法。但原来的问题基本解决了。

希望看完这可以帮助别人。

饲料

更新 - 2012年8月17日:

好,花了支持调用微软(艰巨,但最终富有成效的),但我终于找到了答案,根本的问题

当我第一次设置网络服务器时,出于安全考虑,我没有安装“目录浏览”模块。我不希望Web客户端能够看到文件结构。

嗯,事实证明,需要安装目录浏览模块(即使它被禁用),使IIS响应除200OK(并生成一个空白的HTML页面)之外的任何东西。

安装后(为了安全起见,禁用了),IIS现在响应403.14 Forbidden错误,我已经在web.config中正确重定向了该错误。