CakePHP身份验证/重定向到“users / login”如果我没有经过身份验证并且我尝试打开该页面,则效果很好。 “/帖/视图/ 2”。
但如果我试图获得ie。 “/ users / somethingNotExisting”然后CakePHP扔了
Missing Method in UsersController
Error: The action somethingNotExisting is not defined in controller UsersController
Error: Create UsersController::somethingNotExisting() in file: app/Controller/UsersController.php.
这很糟糕:
我不希望看到错误消息
创建missing_action.ctp不行,在这种情况下,每个人都可以看到默认布局(带菜单等)。
如何强制CakePHP 将任何未经身份验证的未知操作重定向到登录页面?
答案 0 :(得分:2)
您获得的错误消息仅在开发模式下,如果您在app/Config/core.php
Configure::write('debug', 0);
中将调试级别设置为0,您将获得正常的404未找到的响应,您可以根据自己的喜好进行自定义在app/View/Errors/error400.ctp
如果人们在未登录时看到您的菜单,那是因为没有“隐藏”未登录用户的那部分而导致的错误
错误页面浏览量位于app/View/Errors/
。对于所有4xx和5xx错误,分别使用视图文件error400.ctp
和error500.ctp
。您可以根据需要自定义它们。默认情况下,您的app/Layouts/default.ctp
也用于错误页面。如果是例如。您希望为错误页面使用另一个布局app/Layouts/my_error.ctp
,然后只需编辑错误视图并将语句$this->layout = 'my_error';
添加到error400.ctp
和error500.ctp
。这样,您可以隐藏所需的任何默认布局和/或导航