如何为PHP项目统一设置404页面

2025-05-10 14:26:51
推荐回答(2个)
回答1:

包括yii框架下

一、Apache + PHP制作自定义404页面的方法。

首先处理文件真的不存在的情况,方法是利用Apache的.htaccess定义,

方法是新建.htaccess,在.htaccess最开头加上:ErrorDocument 404 /404.PHP (/404.php是自定义404页面)。

二、在yii框架下设置

当请求的页面不存在时,yii会抛出一个CHttpException的异常,异常code为404,那么yii中是怎么处理该类异常的呢,有下面三种方法:
1、啥也不用做,yii会自己处理
当抛出该类异常时,yii会默认去渲染framework/view/下的 errorxxx.php(error404.php)模板文件
2、在protected/views/system下新建errorxxx.php,yii会去渲染该文件
3、配置异常处理器
在配置文件main.php中添加如下配置,设置异常处理控制器为site/error

'errorHandler'=>array(    
            // use 'site/error' action to display errors    
            'errorAction'=>'site/error',    
        ),

然后在SiteController.php中添加,error控制器:

public function actionError()    
    {    
        if($error=Yii::app()->errorHandler->error)    
        {print_r($error);    
            if(Yii::app()->request->isAjaxRequest)    
                echo $error['message'];    
            else    
                $this->render('error', $error);    
        }    
    }

最后在view/site/ 下添加error.php模板文件:

$this->pageTitle=Yii::app()->name . ' - Error';    
$this->breadcrumbs=array(    
    'Error',    
);    
?>    
    

Error 

    
    
    
    

回答2:

  1. 如果有用框架的话,想yii那种,都有统一的错误定位页面

  2. 如果没有用框架或者不知道,最简单的就是写一个公用的方法,然后在执行出错时,控制调用该方法,方法里面在去统一定位到404页面

相关问答