首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

thinkphp5.0 访问不存在的数据或者模块开启404页面并返回404状态码,在404页面中获取abort函数中使用的错误信息

技术文章
原创 数字星空 2024年07月21日 10:47

thinkphp5框架默认未开启404页面,访问不存在的模块都是统一返回的一个异常页面。错误码为500,如果是使用的$this->error()方法则都是返回的200状态码。以前我一直都用的$this->error("page not found");方法来提示页面不存在,现在发现这样对于seo很不友好。因为不存在的数据也返回了200.正常来说,不存在的数据应该返回404.而不是200.否则会让搜索引擎认为是在作弊.thinkphp中针对于http的错误都是使用的异常。可通过abort函数来直接抛出异常。abort可传入http状态码和信息;极为方便。

开启404页面

在applicatin/config.php 配置文件中将http_exception_template 配置注释去掉如果没有这个选项可自行新增

先在applicatin/config.php 配置文件中将http_exception_template 配置注释去掉如果没有这个选项可自行新增
其中404=>APP_PATH . 'common/view/tpl/404.tpl'代表对应的404码,和对应的404文件位置。你可以自定义去修改这个文件位置。
这个时候当网页出现404的时候,就会显示404.tpl文件中的内容。默认是未找到页面。可以自行修改。

在404页面中获取详情的错误信息

通过上面方法开启404页面后,默认所有的404都是返回的文件中固定的内容。这样很不方便。有时候我们需要获取出详细的错误信息。比如:在一个文章详情页中通过文章id来查询数据,当传入的文章id不存在时:提示一个数据不存在。
首先在控制器中写入详情页方法,通过abort函数来抛出http异常,abort传入一个404状态码,和一个错误信息。
在404页面中获取详情的错误信息
然后在404页面文件中,通过{$e->getMessage()}即可成功获取到对应的错误信息。

在404页面中获取详情的错误信息
访问不存在的一个文章id

在404页面中获取详情的错误信息
现在访问不存在的数据错误状态码是404了,而不是之前的200.
访问不存在的模块时状态码也不是500了。都是404
总的来说,访问不存在的数据或者模块应该提示404,而不是500或者200.这样才对seo友好。

本文地址: http://shuzixingkong.net/article/239
0评论
提交 加载更多评论
其他文章 暑假java自学进度总结02
一.今日所学: 1.配置环境变量 在系统内配置java路径后,再在path中 利用系统路径配置Java编译工具和运行工具路径。 2.下载并安装Natepad++,并且配置相关设置 3.初步了解了Java的发展历程,能干什么,为什么被广泛使用,以及跨平台原理。 4.学习了JDK,JRE,JVE之间的关
暑假java自学进度总结02
Windows11下使用VcXsrv+xfce4实现图形化窗口
通过 sudo apt-get install xfce4-terminal sudo apt-get install xfce4 sudo service dbus restart 来安装所需要的软件包,期初我也是按部就班的通过网上搜索到的教程进行操作,例如: sudo nano ~/.bashr
Windows11下使用VcXsrv+xfce4实现图形化窗口
Standard Template Libary or C++ Standard Library
C++提供一套标准的library称为C++ standard library完全以template完成,所以又被称为Standard Template Library。这套library专门有于实现常用的据结构(例如arry、list......)以及常用的算法(例如push,pop,insert
GIS前沿技术
无论是初步接触到GIS的学生,还是对GIS已经有一定的了解的从业者,肯定都非常关心两个问题:GIS有没有发展前景,GIS有哪些应用价值? 关于这两个问题,笔者的答案是GIS作为一门融合了空间数据采集、存储、处理、分析和可视化的学科,涉及到多个交叉领域和技术,因此非常容易与时下流行的前沿科技相结合,因
GIS前沿技术 GIS前沿技术 GIS前沿技术
《痞子衡嵌入式半月刊》 第 105 期
痞子衡嵌入式半月刊: 第 105 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。 上期回
《痞子衡嵌入式半月刊》 第 105 期 《痞子衡嵌入式半月刊》 第 105 期 《痞子衡嵌入式半月刊》 第 105 期
在.NET Web API设置响应输出Json数据格式常用的两种方式
前言 在ASP.NET Core Web API中设置响应输出Json数据格式常用以下两种方式:可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式。 注意:本文示例使用的是新的Minimal API模式
在.NET Web API设置响应输出Json数据格式常用的两种方式 在.NET Web API设置响应输出Json数据格式常用的两种方式 在.NET Web API设置响应输出Json数据格式常用的两种方式
Packer构建openStack镜像
目录使用Packer自动化构建镜像 使用Packer自动化构建镜像 openstack插件安装:OpenStack | Integrations | Packer | HashiCorp Developer openstack插件用法示例:OpenStack Builder | Integratio
Packer构建openStack镜像 Packer构建openStack镜像
创客13星零售商城系统漏洞审计(0day)任意文件上传+SQL注入+SSRF
创客13星零售商城系统漏洞审计3处(0day) 任意文件上传+SQL注入+SSRF
创客13星零售商城系统漏洞审计(0day)任意文件上传+SQL注入+SSRF 创客13星零售商城系统漏洞审计(0day)任意文件上传+SQL注入+SSRF 创客13星零售商城系统漏洞审计(0day)任意文件上传+SQL注入+SSRF