403错误页面未在Symfony中显示

时间:2012-07-17 12:46:09

标签: symfony1 symfony-1.4

我正在使用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

我还有错误模块和相应的错误成功页面。但它没有显示自定义错误页面。在某些情况下为ex: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

3 个答案:

答案 0 :(得分: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环境中正确显示。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你可能需要取消404行动的安全保障:
见这里:http://symfony-check.org/permalink/customize-the-oops-page-not-found-page