我有一台运行IIS 7和Windows 7的Windows 2008服务器。 Coldfusion 9.0.2多实例。我有3个单独的Coldfusion实例,每个实例一个网站。我为每个网站创建了唯一的404错误页面(404error.cfm),以包含该网站的页眉/页脚,并将这些文件放在其网站的根目录中。 IIS错误页面配置似乎没有像我想象的那样工作。
我进入IIS,siteA,错误页面,打开404错误的编辑自定义错误页面,勾选在此站点上执行URL。对于URL,我输入/404error.cfm。在特色设置中,我选择的3个项目中的哪一个无关紧要。会发生什么呢?它在COLDFUSION ROOT级别运行404error.cfm(JRun4 \ servers \ cfusion \ cfusion-ear \ cfusion-war \ 404error.cfm)(我把文件放在那里)。不好,因为这不是特定于站点的。我修改了CF rootdir 404error.cfm以在网站的根级别运行404error.cfm,但它对应用程序范围变量和会话范围变量一无所知。
如何让IIS / CF直接在网站的根目录中运行404error.cfm而不通过CFroot 404error.cfm文件?
我希望我解释一下这样你就可以了。
提前致谢〜乔〜
答案 0 :(得分:1)
来自评论
我发现ColdFusion将始终在WAR中检查文件。如果它找到了一个(在WAR中)它将处理那个而不是IIS Web根目录中的同名文件。一旦它找到该文件,它似乎将路径信息缓存到它。因此,从WAR中删除文件后,您需要停止并启动ColdFusion服务,以便查找 IIS Web根目录中的文件。
另一方面,您需要在ColdFusion administrator中启用Enable HTTP Status Codes
设置吗?该设置告诉ColdFusion服务器将正确的http状态代码返回给IIS,这反过来将触发自定义404页面。