tp5自定义404页面

浏览:5929 发布日期:2018/09/29 分类:技术分享 关键字: tp5 404界面 404
404



404状态是客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应,且不知道原因所返回的页面。
404页面有很多种,tp5自带的如下:

也有这样的:



当然,也有这样由国际发起的寻找丢失儿童的404界面:

4.png

但对于我们自己的网站来说,定制的404页面不仅能对SEO有一定的优化,更能结合自己的网站,使得网站更加的生动,形象,更加的好看。

tp5的404页面




配置config


tp5内置了一个抛出http异常可跳转的界面,配置在config.php的http_exception_template数组中,如下所示:

5.png

当然,除了如下的404,401界面,任何http的异常都可以自定义。
当项目抛出定义的http异常时,就会找寻响应的模板进行显示(前提,必须关闭app_debug的调试模式)。

但是这样定义会存在弊端(个人最近使用时实际发现的,可能有所不对):
1、无法使用php代码以及tp5的方法
2、前后台的404页面会相同。如果要单独在一个模块配置404的话,如果出现模块不存在,则仍然无法出现自己定义好的404界面。
## 可以配置miss路由
Route::miss('public/miss');请求的地址没有匹配到所有的路由规则后,会路由到 public/miss路由地址。这样就会出现一个问题,只有配置好全部的路由之后,才会达到
想要的效果。(个人对于后台,认为配置路由太麻烦,所有没有尝试这样方法)


使用空控制器或者空操作


仍然跟配置config一样,在单模块下使用比较方便,但是对于多模块来说,模块不存在时无法使用。


自定义异常


这个是目前我博客使用的办法。当系统出现异常时,会提交给\think\exception\Handle这个类去执行,所以我们可以在配置文件中配置自己的异常类。如下所示:
6.png

7.png

8.png



当开始debug的时候,使用系统自带的异常类,当关闭debug并出现异常的时候,会跳转到'home/index/haserror'方法,输出404界面。由于加载了框架的核心文件,所以在这个404页面你可以尽情的使用php的方法写任何东西。
当然,我们也可以在admin中单独配置'exception_handle',使得后台仍然使用tp5自带的方法,这样方便我们后才开始时显示错误。

效果


我的博客的404界面效果如下,是不是很炫:

微信图片_20180929173932.png


哇,这个图片死活上传不上去,大家可以去我的博客http://crasphter.cn/article/18查看
最佳答案
评论( 相关
后面还有条评论,点击查看>>