如何在使用existingResponse=";时显示静态文件的错误页面;“直通”;在iis7中
为了使我的应用程序(Umbraco CMS)能够处理404错误,我需要在我的web.config中设置以下设置:如何在使用existingResponse=";时显示静态文件的错误页面;“直通”;在iis7中,iis,umbraco,custom-error-pages,Iis,Umbraco,Custom Error Pages,为了使我的应用程序(Umbraco CMS)能够处理404错误,我需要在我的web.config中设置以下设置: <httpErrors existingResponse="PassThrough" /> 它可以很好地显示来自Umbraco的自定义404错误页面,但在找不到静态文件时无法显示404错误页面 例如,返回404状态代码,但response为空。这与直通模式的描述相符: PassThrough–如果existingResponse被视为“PassThrough”,则自
<httpErrors existingResponse="PassThrough" />
它可以很好地显示来自Umbraco的自定义404错误页面,但在找不到静态文件时无法显示404错误页面
例如,返回404状态代码,但response为空。这与直通模式的描述相符:
PassThrough–如果existingResponse被视为“PassThrough”,则自定义
错误模块将始终传递来自模块的响应。这
设置将使自定义错误模块返回空白响应,如果模块
不要设置任何文本。
()
什么是“自定义错误模块”?我如何让它返回一个非空的响应
更新
通过Umbraco中的请求处理例程(使用调试器),我对问题空间有了更好的理解。如上面引文中所述,当existingResponse=“PassThrough”时,所有http错误的处理都在自定义模块中完成。因此,为了回答我自己的问题,“自定义错误模块”在本例中是“UmbracoModule”
解决此问题的一种方法是创建一个新的自定义模块,该模块将检查磁盘上是否存在静态文件。这可以做得很好,我从IIS中读取静态文件列表,并从web.config中读取customErrors或httpErrors元素的配置,以获得一个自定义错误页面。但我认为这是一个粗糙的解决方案。我宁愿把责任推回给非法入境者
有什么想法吗?你说得对。为了方便其他寻求帮助的人,这里有一些关于404处理的额外信息
- -使用文件/config/umbracoSettings.config描述您的解决方案
- -适用于Umbraco 7,并介绍了标签的使用
- -固定IIS6及其与IIS7的比较