ColdFusion 10 Update 11 404处理程序未触发
我知道CF 10有许多围绕404处理的问题。 这似乎与其他报告不同。 细节:
404.cfm非常简单:
<cfheader
statuscode="404"
statustext="Not Found">
<h1>404</h1><p>Page not found</p>
<cfoutput>#now()#</cfoutput>
输入错误的网址[domain] /foo.cfm应显示上述模板。 相反,我得到一个IIS错误屏幕。 缺少CF的模板处理程序将被忽略。 IIS失败的请求追踪表明网址是
http://[mydomain]:80/jakarta/isapi_redirect.dll
并在步骤1中显示详细视图
RequestURL="http://[mydomain]:80/foo.cfm
我已经看到了围绕CF10和404的许多问题,但从来没有完全忽略丢失的模板处理程序分配。 在CF9中,这将产生预期的产出。 任何人看到这样的事情?
编辑:
我也尝试配置这个来匹配我运行的另一个CF9服务器:添加一个CF映射到网站的Web根目录。 然后将丢失的模板处理程序放入网站的根目录中,而不是CF默认Web根目录,最后在cfadmin中使用映射的文件夹指向网站根目录中缺失的模板处理程序。 同样的问题。 在CF9中运行良好,而且完全没有使用CF10。
EDIT2:
正如Miguel F在评论中指出的那样,你可以在CF Admin中关闭HTML错误代码,这会让Missing Template Handler失败......但是你得到了200头文件。 显然cfheader语句被忽略,因为我已经尝试将cfheader放置在模板的开始和结尾......仍然会产生200.看起来很好,但是就SEO而言,这是一场灾难。 刚看了一下,我的CF9服务器不需要这个设置就可以让他们的处理程序无法工作。
EDIT3
Dana Kowalski的解决方案向公众显示详细的IIS错误,因此对于一个404扩展名(foo.xyz),屏幕将显示文件路径。 除了在本地运行模板以外,默认行为是不显示详细错误,并向访问者显示自定义错误页面。 CF错误模板应该适用于该设置。
可能的解决方案
作为调试此问题的一部分,我回到了ColdFusion 9,并且可能在调试单独的相关问题时发现了解决方案。
在IIS管理器中,点击相关网站。 选择错误页面选项。 选择右侧的“编辑功能设置”链接。 检查是否选择了“详细错误”选项。
如果您选择了另外两个中的任何一个,则有时IIS 7.x将接管并且不让ColdFusion处理它。
链接地址: http://www.djcxy.com/p/74063.html