我的目标似乎很简单。
我希望 IIS 7.5 处理所有404 File Not Found 请求,无论是静态还是动态 (ColdFusion 9) 内容,并将用户定向到其自定义 404 HTML 页面。
我相信我需要的 IIS 设置是existingReponse=Replace
,errorMode=Custom
和为 404 指定的文件路径。这就是我所做的。
安装 ColdFusion 10 后,它就可以工作了。对于 ColdFusion 9,出于某种原因,静态 IIS 404 响应和 ColdFusion 404 响应都被发送到客户端并显示。很奇怪。
我尝试了各种替代配置,每种方法似乎都存在一些问题。
任何想法为什么 IIS 无法替换 ColdFusion 的 404 消息?ColdFusion 是否无法与 IIS(通过适当的标头)通信它正在发送 404?IIS是固执的吗?为什么 ColdFusion 10 和 ColdFusion 9 会有所不同?
ColdFusion 9,通过 CFAdmin
Global Settings
- Missing Template Handler = [no path specified]
IIS 7,通过 IIS 管理器
Configuration Editor -> system.webServer/httpErrors
- allowAbsolutePathWhenDelegated = false
- defualtPath = [no path specified]
- defaultResponseMode = File
- errorMode = Custom
- existingResponse = Replace
Configuration Editor -> system.webServer/httpErrors -> Edit Collection
- 404 Error
path = [DriveLetter]:\inetpub\wwwroot\CAES\global\errorHandling\404.html
prefixLanguageFilePath = [none specified]
respnseMode = File
statusCode = 404
subStatusCode = -1
- 403 Error
path = [DriveLetter]:\inetpub\wwwroot\CAES\global\errorHandling\403.html
prefixLanguageFilePath = [none specified]
respnseMode = File
statusCode = 404
subStatusCode = -1