我正在使用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
答案 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_module
和secure_action
。
答案 2 :(得分:0)
你可能需要取消404行动的安全保障:
见这里:http://symfony-check.org/permalink/customize-the-oops-page-not-found-page