CakePHP';中的权限重定向错误;s AuthComponent


Permission redirecting error in CakePHP's AuthComponent

我在SO中看到了许多类似的问题,但没有一个能帮助我解决问题。

我认为CakePHP的AuthComponent在权限错误方面表现不佳。

我的CakePHP应用程序位于我网站的子域中(例如。http://www.example.com/myapp)。每次出现权限错误(用户不允许查看此页面),Cake都会在URL中添加另一个"/myapp"(因此它变成http://www.example.com/myapp/myapp)并自然地抛出一个错误,说明"myapp"控制器不存在。

在我的场景中,登录视图链接到网站的根目录。所以,我在我的AppController中有:

public $components = array(
    'Session',
    'Auth' => array(
        'loginAction' => array(
            'controller' => 'users',
            'action' => 'login'
        ),
        'logoutRedirect' => array(
            'controller' => 'users',
            'action' => 'login'
        ),
        'authorize' => 'Controller',
        'authenticate' => array(
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        )
    )
);

在routes.php:中

Router::connect('/', array('controller' => 'users', 'action' => 'login'));
Router::connect('/users', array('controller' => 'users', 'action' => 'login'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

我想要的只是能够手动配置Cake在出现权限错误时应该重定向到哪个URL。有人知道怎么做吗?

对不起,伙计们,我后来不小心找到了答案。由于CakePHP有一些非常直观的标签,我开始猜测Auth组件的一些可能选项,以解决我的问题。我最终发现了unauthorizedRedirect选项!

所以我有:

'unauthorizedRedirect' => array(
    'controller' => 'users',
    'action' => 'login'
),

现在一切都很好。我只希望Cake的文档已经涵盖了这一点。。。如果是的话,我发誓我哪儿也找不到。