【问题标题】:Cakephp index is in app/webrootCakephp 索引在 app/webroot 中
【发布时间】:2013-09-01 21:41:19
【问题描述】:

我刚刚为我新创建的蛋糕项目添加了ACL 权限。但是,当我尝试访问它以创建 groupsusers 时,我收到以下消息:

Forbidden
You don't have permission to access /Udlejning/app/webroot 

这是仅针对索引的错误消息,即localhost/Udlejning/

谁能告诉我为什么它把我重定向到那里以及我该如何解决它?

值得一提的是,我的用户控制器中有以下规则:

  public function beforeFilter() {
    parent::beforeFilter();

    // For CakePHP 2.0
    $this->Auth->allow('*');

    // For CakePHP 2.1 and up
    $this->Auth->allow();
}

我的 AppController 看起来像这样:

   public function beforeFilter() {
    //Configure AuthComponent
    $this->Auth->loginAction = array('controller' => 'Users', 'action' => 'login');
    $this->Auth->logoutRedirect = array('controller' => 'Users', 'action' => 'login');
    $this->Auth->loginRedirect = array('controller' => 'pages', 'action' => 'index');
}

这些是我的重定向规则

    <IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

规格

我正在使用 Cake 2.4 和 Linux mint

【问题讨论】:

  • 上述htaccess文件与您的问题无关。该问题很可能是服务器配置错误。您需要为您的父 htaccess 文件之一允许“AllowOverwrite”,或者对您的虚拟主机设置更好。否则(在某些机器上 AllowOverwrite None 是默认值),您的 htaccess 文件不会被处理和忽略 - 从而导致您的错误。注意:您应该始终提及您正在使用的确切 cakephp 版本。在这种情况下,您使用的是什么操作系统。
  • @mark ive 在我的问题中添加了蛋糕版本和操作系统
  • 标准您的主 index.php 文件位于 app/webroot 中,因此这是正确的。它将与 .htaccess 文件一起到达那里。所以这都是正常的。您的消息似乎与 ACL 的配置错误有关。对于测试,首先尝试通过应用控制器向所有控制器授予所有权限。然后你可以开始限制它的测试。因此,首先公开所有访问权限,然后在可行时开始完善。

标签: php cakephp


【解决方案1】:

在调用父函数之前尝试设置你的 auth->allow

public function beforeFilter() {

 // For CakePHP 2.0
 $this->Auth->allow('*');

 // For CakePHP 2.1 and up
 $this->Auth->allow();

 parent::beforeFilter();

}

【讨论】:

  • 遗憾的是这没有效果。
  • 让我知道它是否有效,但第二个想法是,在哪里调用父 beforeFilter 函数并不重要。
  • 我认为它根本与代码无关,它必须是服务器端配置错误的东西。您是否按照马克所说的那样检查了 AllowOverwrite None?
猜你喜欢
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
相关资源
最近更新 更多