【问题标题】:Cakephp 403 error not displaying custom pageCakephp 403 错误未显示自定义页面
【发布时间】:2013-08-04 09:53:18
【问题描述】:

导航到 mysite.com/img 中的位置时,我收到标准的 apache 403 错误页面,该页面转换为 app/webroot/img。

我正在使用 Cakephp 2.x 并设置了自定义 error400.ctp,据我测试,它可以正确处理 404 错误。

这是一个没有让 cakephp 处理错误的 htaccess 问题吗?如何在不硬编码 .htaccess 中的路径的情况下显示 error400.ctp 页面?

这是我的应用程序/webroot .htaccess 文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

谢谢!

【问题讨论】:

  • 你应该有 3 个 htaccess 文件。一个在 /(根),一个在 /app,一个在 /app/webroot。粘贴所有 3 个代码中的代码,并更新您的问题以提及您添加到 Cake 的默认 htaccess 文件的任何修改。
  • 这是设计使然,CakePHP 不处理 app/webroot 中的内容。
  • 感谢大家的回复!我会继续处理比 403 错误更重要的事情。

标签: php .htaccess cakephp cakephp-2.0 http-status-code-403


【解决方案1】:

在您的 AppController 中编写以下代码。

function beforeFilter() {
    if($this->name == 'CakeError'){
        $this->layout = 'error400';
    }
}

这将适用于所有蛋糕错误。

【讨论】:

  • cakephp 3.6 有同样的问题,知道如何解决和显示error403.ctp 禁止错误页面
  • @Er.AmitJoshi 您可以检查上述beforeFilter()方法中的错误
猜你喜欢
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 2017-06-11
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
相关资源
最近更新 更多