默认情况下,TP6当开启调试模式时,试图访问一个不存在的控制器时会返回以下页面:
如果你没有打开调试模式就长这样:
一般情况下,“找不到控制器”对于用户来说就是404找不到页面,并且在调试模式没有关闭时容易泄露服务器信息。
ThinkPHP自带了http_exception_template配置用于设置抛出HTTP错误时使用的模板文件。
优点:配置简单;缺点:仅适用于部署模式、各个错误码需单独设置。
在app.php内添加以下内容:
'http_exception_template' => [
// 404
404 => \think\facade\App::getRootPath().'404.html',
//getRootPath为获取项目根目录,可根据实际情况修改
// 其他错误码
401 => \think\facade\App::getRootPath().'401.html',
]
ExceptionHandle.php中预置了异常处理类,只需捕获HttpException异常即可返回各个页面的错误码。
在ExceptionHandle.php自带的return parent::render($request, $e);
下方添加以下内容:
if($e instanceof HttpException){
return response("网页错误:".$e->getStatusCode(), $e->getStatusCode());
}
其中response助手函数的第一个参数为返回的页面内容,可自行修改或套模板。
除声明外inSoraSky博客(http://www.sorasky.in/)所有内容均为本人所原创,转载时请注明来源!