如何在CakePHP中对静态页面进行密码保护?

如何在CakePHP中对静态页面进行密码保护?,php,cakephp,Php,Cakephp,我有一个相当简单的CakePHP应用程序,它使用Auth组件限制对管理函数的访问。这一切都很好,但我使用页面控制器来显示主页和管理主页 如何设置auth以控制对主页“/”和“/admin”等页面的访问?将页面控制器从/cake/libs/controller/目录复制到您的常规/app/controller/目录中,并根据需要对其进行修改。将页面控制器从/cake/libs/controller/目录复制到您的文件夹中常规/app/controller/目录,并根据需要对其进行修改。我不相信您可

我有一个相当简单的CakePHP应用程序,它使用Auth组件限制对管理函数的访问。这一切都很好,但我使用页面控制器来显示主页和管理主页


如何设置auth以控制对主页“/”和“/admin”等页面的访问?

将页面控制器从
/cake/libs/controller/
目录复制到您的常规
/app/controller/
目录中,并根据需要对其进行修改。

将页面控制器从
/cake/libs/controller/
目录复制到您的文件夹中常规
/app/controller/
目录,并根据需要对其进行修改。

我不相信您可以使用Auth组件来有效地保护静态页面,因为页面控制器使用单个操作display()来呈现所有静态页面。由于通常您会执行诸如Auth->allow('display')之类的操作来允许访问诸如“/”之类的静态页面,因此没有有效的方法来指定单个静态页面的允许/拒绝。

我不相信您可以使用Auth组件来有效地保护静态页面,因为页面控制器使用单个操作display(),呈现所有静态页面。由于通常您会执行诸如Auth->allow('display')之类的操作来允许访问诸如“/”之类的静态页面,因此没有有效的方法来指定单个静态页面的允许/拒绝。

这对我很有效:

在应用程序控制器中:

function beforeFilter(){
    if(@$this->params['pass'][0] == 'profile') //allow \app\views\pages\profile.ctp
        $this->Auth->allow('display');

}
您也不必只使用
$this->params['pass']
变量。
$this
变量中包含大量信息,您可以使用这些信息来定位正确的页面。您也可以使用url,它通常的形式是:/pages/page name

这对我来说很有用:

在应用程序控制器中:

function beforeFilter(){
    if(@$this->params['pass'][0] == 'profile') //allow \app\views\pages\profile.ctp
        $this->Auth->allow('display');

}
您也不必只使用
$this->params['pass']
变量。
$this
变量中包含大量信息,您可以使用这些信息来定位正确的页面。您还可以使用url,url的格式通常为:/pages/页面名称