如果有人在浏览器url栏中点击http://mysite/users/unknownaction然后我就犯了错误。
我想捕捉那个错误并重定向到http://mysite/。
我如何在CakePHP-2.0中做到这一点。
正如Hugo所建议的那样,当您处于生产模式时,丢失的URL将抛出一个NotFoundException
,默认情况下,它会生成一个标准的"404未找到"页面。如果您想改变这种行为,您必须查看CakePHP 2.0中处理异常的文档。
在"app"文件夹上创建一个文件"app_error.php"。
<?php
class AppError extends ErrorHandler {
function error404($params, $messages) {
$this->Session->flash($messages);
$this->controller->redirect(array('controller'=>'welcome', 'action'=>'index'));
parent::error404($params);
}
}
?>
您可以在重定向之前将错误消息保存在会话闪存上。