0

当请求的页面不存在时,是否可以使用 OnRequestStart 事件处理程序呈现不同的页面?

function onRequestStart( string targetPage ) {
    // handle another page
} 

if(FileExists(cgi.script_name)){
    include cgi.script_name;
}else{
    // render another page
}

如果我直接使用包含而不是通过 onRequestStart 传递它,则会收到有关缺少 SESSION 的错误

如果我不中止执行,我会收到File not found错误消息。有没有办法跳过尝试查找文件并使用 onRequestStart 事件来呈现不同的页面?

4

2 回答 2

4

如果您试图阻止 cfm 模板不存在的冷融合页面(例如 /index2.cfm)的 404,您可以onMissingTemplate()在 application.cfc中使用

如果导致 404 的模板不是由 CF 处理的(即 .htm、.html),那么您必须使用自定义 404 页面或可能的 url 重写在网络服务器中捕获它

于 2013-07-05T17:15:22.640 回答
-1

试试这个

OnError()

如果异常被抛出并且未被控制代码捕获,则会触发此事件。

在 application.cfc 上查看这篇文章 Ben Nadel

于 2013-07-05T01:48:23.887 回答