1

我正在为我的项目使用 Symfony 1.4,并且需要显示自定义 403 错误页面。我在 settings.yml 中给出了以下内容

 .actions:
    error_404_module: errors
    error_404_action: error404
    error_500_module: errors
    error_500_action: error500
    error_403_module: errors
    error_403_action: error403

我也有错误模块和相应的错误成功页面。但它没有显示自定义错误页面。在某些情况下,例如: 404 它正在显示调试页面。返回 403 页面,并带有默认的禁止错误消息。我的操作文件如下所示:

class errorsActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    //$this->forward('default', 'module');
  }

  public function executeError404(sfWebRequest $request)
  {
  }

  public function executeError500(sfWebRequest $request)
  {
  }
  public function executeError403(sfWebRequest $request)
  {
  }
}

编辑:添加 settings.yml 修改

  .actions:
    error_404_module: errors
    error_404_action: error404
    error_500_module: errors
    error_500_action: error500
    secure_module: errors
    secure_action: error403
4

3 回答 3

1

在您的情况下, settings.yml 应该是:

all:
  .actions:
    # page not found
    error_404_module:       errors     # module "errors"
    error_404_action:       error404   # action "executeError404"

    # 403 credential required
    secure_module:          errors     # module "errors"
    secure_action:          error403   # action "executeError403"

对于 500 错误页面,error在你的目录中创建一个目录,app/appname/config并在其中放入一个error.html.php文件(一个完整的 html 页面)。

关于 404 错误页面,这个页面(和 500 错误页面一样)在dev环境中被调试页面覆盖,但在环境中会正确显示prod

于 2012-07-18T06:07:17.003 回答
0

这不是覆盖 403 错误页面的正确方法。使用secure_modulesecure_action

于 2012-07-17T17:56:52.843 回答
0

您可能需要取消 404 操作的安全性:
请参见此处:http ://symfony-check.org/permalink/customize-the-oops-page-not-found-page

于 2012-07-17T18:02:16.927 回答