ThinkPHP 3.2.x 将异常发出头部改为 503 的方法
来源:互联网 发布:postgresql 数组查询 编辑:程序博客网 时间:2024/05/16 08:28
如果程序发生异常,thinkphp默认都是抛出 404 头。
ThinkPHP3.2.3相关代码:
#/ThinkPHP/Library/Think/Think.class.php /** * 自定义异常处理 * @access public * @param mixed $e 异常对象 */ static public function appException($e) { $error = array(); $error['message'] = $e->getMessage(); $trace = $e->getTrace(); if('E'==$trace[0]['function']) { $error['file'] = $trace[0]['file']; $error['line'] = $trace[0]['line']; }else{ $error['file'] = $e->getFile(); $error['line'] = $e->getLine(); } $error['trace'] = $e->getTraceAsString(); Log::record($error['message'],Log::ERR); // 发送404信息 header('HTTP/1.1 404 Not Found'); header('Status:404 Not Found'); self::halt($error); }
404表示的是未找到,发生异常却抛出404 HTT 头,其实是错误的。
应该修改为 503 头最合适,修改方法,将 header部分修改为如下:
header('HTTP/1.1 503 Service Unavailable'); header('Status: 503 Service Unavailable');
相关:《百度搜索引擎工作原理》
[url]http://zhanzhang.baidu.com/college/courseinfo?id=144[/url]
2、常用抓取返回码示意 简单介绍几种百度支持的返回码: 1)最常见的404代表“NOT FOUND”,认为网页已经失效,通常将在库中删除,同时短期内如果spider再次发现这条url也不会抓取; 2)503代表“Service Unavailable”,认为网页临时不可访问,通常网站临时关闭,带宽有限等会产生这种情况。对于网页返回503状态码,百度spider不会把这条url直接删除,同时短期内将会反复访问几次,如果网页已恢复,则正常抓取;如果继续返回503,那么这条url仍会被认为是失效链接,从库中删除。 3)403代表“Forbidden”,认为网页目前禁止访问。如果是新url,spider暂时不抓取,短期内同样会反复访问几次;如果是已收录url,不会直接删除,短期内同样反复访问几次。如果网页正常访问,则正常抓取;如果仍然禁止访问,那么这条url也会被认为是失效链接,从库中删除。 4)301代表是“Moved Permanently”,认为网页重定向至新url。当遇到站点迁移、域名更换、站点改版的情况时,我们推荐使用301返回码,同时使用站长平台网站改版工具,以减少改版对网站流量造成的损失。
其他框架
使用codeigniter,发生异常是抛出500头部。包括其他的框架都是5xx头。(原创by default.fu@foxmail.com,转载请著名出处,欢迎交流)
0 0
- ThinkPHP 3.2.x 将异常发出头部改为 503 的方法
- 隐藏PHP程序头部发出的:X-Powered-By: PHP/5.2.4类似的信息
- 将虚拟机的版本改为1.6的方法
- 将本地localhost:端口 改为 网址 的方法(用于测试)
- 将eclipse编码格式改为utf-8的方法
- 将matlab改为黑色主题monokai的方法
- Oracle 将普通字段类型改为Clob类型的方法
- 将项目改为MRC的方法(有图有真相)
- 将phpstorm改为在控制台运行的方法
- Oracle 将普通字段类型改为Clob类型的方法
- ThinkPHP 3.2 自定义异常
- 对话框不显示右上角X号的方法--对话框属性的style改为Overlapped
- 对象数组 NullPointerException异常--将图C++ 改为java版
- 将项目的平台由32位改为64位:VS2013修改编译平台的方法
- iOS中调用相机时选取图片的时候将因问改为中文的方法
- 将数据库中某个字段的格式20170508改为2017-05-08格式的方法
- 将Eclipse,MyEclipse等编辑器的项目管理框颜色改为护眼豆沙绿的方法
- 将extman字符验证码改为数字验证码的方法
- 事件监听机制——列出指定目录内容、添加Dialog对话框
- iOS获取基于ASIHTTP的上传数据的变化方法
- You must restart adb and Eclipse处理方法(sjk_daemon.exe占用5037端口)
- 算法导论第15章 动态规划-最长公共子序列
- 用例图之参与者、用例间的四种关系
- ThinkPHP 3.2.x 将异常发出头部改为 503 的方法
- YII_获取控制器模块操作
- 设计兼容不同的屏幕尺寸的Android界面
- Java基础知识汇总 - 05
- ffmpeg 常用命令
- 牛刀小试 - 趣谈Java中的异常处理
- Spring兩大特色IoC和AOP
- webviewv36 支持的 Remote Debugging 特性以及与 appium 的关系
- 微服务化架构演进与人员组织