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中Date获取时间不正确怎么办
Jun 05 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
sql注入与转义的php函数代码
Jun 17 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
Oct 15 PHP
laravel中Redis队列监听中断的分析
Sep 14 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
PHP EOT定界符的使用详解
2008/09/30 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP的基本常识小结
2013/07/05 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
js闭包实例汇总
2014/11/09 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
基于python socketserver框架全面解析
2017/09/21 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
pycharm安装和首次使用教程
2018/08/27 Python
Django框架中序列化和反序列化的例子
2019/08/06 Python
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
采购内勤岗位职责
2013/12/10 职场文书
大学活动邀请函
2014/01/28 职场文书
五一晚会主持词
2015/07/01 职场文书
公司岗位说明书
2015/10/08 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技