ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解


Posted in PHP onApril 03, 2019

本文实例讲述了ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面。分享给大家供大家参考,具体如下:

【演示准备】

    首先下载了一个ThinkPHP3.2.3,目录结构如下:(只有Home模块、Index控制器、index操作方法)

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

    然后找了一个简易的错误404页面404.html放到了根目录:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空模块】

访问一个不存在的模块Admin,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 修改根目录下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代码:

// E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME);
header("Location: /404.html");
exit();
再次访问空模块:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

【空控制器】

访问Home模块不存在的控制器User,错误提示:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/App.class.php 101行前后代码:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Empty控制器,在里面做404跳转(A方法实例化Empty控制器)。

EmptyController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller {
  public function index() {
    header("Location:/404.html");
    exit();
  }
}

再次访问空控制器:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

 【空操作】

访问Home模块下Index控制器不存在的test操作方法,错误提示:

 ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

查看根目录下 ThinkPHP/Library/Think/Controller.class.php 170行前后代码: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

通常的处理方法是:在当前模块下新建一个Public控制器(继承Controller),在里面定义_empty方法跳转404页面, 然后其他控制器再继承Public。

PublicController.class.php:

<?php
namespace Home\Controller;
use Think\Controller;
class PublicController extends Controller {
  public function _empty() {
    header("Location:/404.html");
    exit();
  }
}

Index控制器继承Puclic:

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

再次访问空操作方法: 

ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
新版PHP极大的增强功能和性能
Oct 09 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
Mar 15 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
浅谈laravel中的关联查询with的问题
Oct 10 PHP
windows系统php环境安装swoole具体步骤
Mar 04 PHP
PHP反射实际应用示例
Apr 03 #PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 #PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 03 #PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 #PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 #PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 #PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 #PHP
You might like
用PHP解决的一个栈的面试题
2014/07/02 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
jquery 获取json数据实现代码
2009/04/27 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
vue.js实现双击放大预览功能
2020/06/23 Javascript
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python自动化测试之连接几组测试包实例
2014/09/28 Python
python正则表达式中的括号匹配问题
2014/12/14 Python
Python文件及目录操作实例详解
2015/06/04 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
python 异或加密字符串的实例
2018/10/14 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
LivingSocial爱尔兰:爱尔兰本地优惠
2018/08/10 全球购物
优秀共产党员事迹材料
2014/12/18 职场文书
运动与健康自我评价
2015/03/09 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL