一,前言

  一.1)以下代码是在TP3.0版本之后,URL的默认模式=》PATHINFO的前提下进行的。(通俗点,URL中index.php必须存在且正确)

代码和讲解如下:

1、空模块解决:http://localhost:8095/index.php/Home/index/index 输入http://localhost:8095/index.php/Home23/index/index  会报错,解决

-》》》 1)在公共配置文件添加:

'MODULE_ALLOW_LIST'    =>    array('Home','Admin'),
  'DEFAULT_MODULE'       =>    'Home',

2)空模块要结合下面的2和3,一起,所以要看完哦。

上面的'DEFAULT_MODULE'  很重要, 因为当你模块名写错的时候,tp的基类已经把错的模块名当成了控制器名,就会变成Home/Home23,也时候就是走的空控制器了

2、空控制器解决:

1)在Admin和Home下面的Controller文件夹下分别新增EmptyController.class.php文件,里面写一个_empty()方法。 这两个控制器都要继承Controller.class.php.

代码:

namespace Home\Controller;
use Think\Controller;
/**
 * 空模块,主要用于显示404页面,请不要删除
 */
class EmptyController extends Controller{
    public function _empty(){
        $src = '/Static/404/404.jpg';
        echo "<img src=".$src.">";
    }
}

3、空操作解决:

在Home和Admin模块下的普通控制器的父级控制器里面写一个_empty()方法目的就是每个控制器都继承了该_empty()方法,只要是空操作就跳转到_empty()方法里面。

代码如下:

namespace Home\Controller;
use Think\Controller;
/**
 * 父类控制器空操作,主要用于子类继承
 */
class HomeController extends Controller{
    public function _empty(){
        $src = '/Static/404/404.jpg';
        echo "<img src=".$src.">";
    }
}

至此,在URL模式为PATHINFO模式下=》所有TP框架空操作都被我们自定义的404.jpg页面替换。

二、通用情况--修改apache配置.htaccess

  一般网站报404原因都是找不到资源,是服务器(以Apache为例)报错,Apache自定义了404输出,我们的目的是使用自定义的404.html去替换Apache的输出,

那么就有了下面的代码和过程:

针对Apache服务器:制作一个404页面,页面自己设计即可,命名为notfound.php,上传到网站根目录。打开.htaccess文件,添加代码:ErrorDocument 404 /notfound.php(注意:404和/之间有空格),然后将.htaccess文件上传到网站根目录。如果.htaccess存在ErrorDocument 404 /index.php,一定要将其删除。这种将404错误转向到网站主页的作法存在极大的风险,严重时会导致主页在搜索引擎中消失。END

示例:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] ErrorDocument 404 /notfound.php </IfModule>

  

TP3.2框架,实现空模块、空控制器、空操作的页面404替换||同步实现apache报错404页面替换的更多相关文章

  1. springmvc前端控制器拦截路径的配置报错404

    1.拦截"/",可以实现现在很流行的REST风格.很多互联网类型的应用很喜欢这种风格的URL.为了实现REST风格,拦截除了jsp的所有. 2.拦截/*,拦截所有访问,会导致404 ...

  2. php YII2空数组插入报错问题处理 Array to string conversion

    问题描述 前端传空数组 [],php接收后处理不当插入数据库时报错Array to string conversion 参数示例 { "id": 0, //ID整型 "t ...

  3. SharePoint Iframe 报错“此内容不能显示在一个框架中”<续>

    在之前的SharePoint站点iframe引用中,我们遇到过下面的问题,就是其它系统或者不通环境的SharePoint站点,引用SharePoint页面会报错“此内容不能显示在一个框架中”,之前我们 ...

  4. 【spring cloud】【IDEA】【maven】spring cloud多模块在idea上使用maven插件打包报错:程序包XXX不存在

    >>>>spring cloud 多模块 >>>>在idea上使用maven插件打包,欲打包成jar包后 进行部署 >>>> 报 ...

  5. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  6. ThinkPHP3.2 中空方法、空控制器和空模块的设置

    ThinkPHP3.2 中空方法.空控制器和空模块的设置 1.空方法设置 问题: 当你访问一个不存在的方法的时候: 如: http://localhost/test/index.php/Home/Us ...

  7. 【tp5】tp5实现空模块、空控制器、空操作的页面404跳转

    写在最开始:本教程适用于tp5路由的[强制模式+半pathinfo模式+pathinfo模式],通用. 比网上的[通过路由去控制空模块更强力.更全面]. PS:路由控制空模块缺点:仅仅在[强制模式下才 ...

  8. Tp5 空模块、空控制器、空方法的处理

    1.空模块处理 如果是开启了路由 可直接找到route.php文件,具体的位置看个人放置的位置,在里面新增一个语句 '__miss__' => ['portal/index/errorMsg', ...

  9. thinkphp5.0 空模块、空控制器、空方法

    空模块 'exception_handle' => function(Exception $e){ // 参数验证错误 if ($e instanceof \think\exception\Va ...

随机推荐

  1. Windows 添加计划任务 每隔一定时间执行指定批处理脚本

    schtasks /create /sc minute /mo 20 /tn "TestBatch" /tr C:/TestBatch.bat TestBatch.bat echo ...

  2. 热修复 DexPosed AOP Xposed MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. Tag Archives: 海明距离

    在前一篇文章 <海量数据相似度计算之simhash和海明距离> 介绍了simhash的原理,大家应该感觉到了算法的魅力.但是随着业务的增长 simhash的数据也会暴增,如果一天100w, ...

  4. 利用wsdl2java工具生成webservice的客户端代码

    1.JDK环境  2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME ...

  5. 微信小程序--后台交互/wx.request({})方法/渲染页面方法 解析

    小程序的后台获取数据方式get/post具体函数格式如下:wx.request({}) data: { logs:[] }, onLoad:function(){ this.getdata(); } ...

  6. 在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)

    在使用Vs2013打开Vs2008的解决方案时出现了以下错误: 无法打开 因为此版本的应用程序不支持其项目类型(.csproj). 在网络上找到解决方案: 命令行或者Vs自带的命令提示符输入:deve ...

  7. Github上Stars最多的53个深度学习项目,TensorFlow遥遥领先

    原文:https://github.com/aymericdamien/TopDeepLearning 项目名称 Stars 项目介绍 TensorFlow 29622 使用数据流图计算可扩展机器学习 ...

  8. 解决webstorm本地IP访问页面出错的问题,webstorm支持IP访问

    想在手机端访问webstorm做出的页面,遇到了根据IP地址访问页面错误的问题,试了网上的方法:“设置webstorm可以被外部连接访问”,依旧不能解决 解决方法: 在webstorm下:ctrl+a ...

  9. (算法)从0到n整数中数字2出现的次数

    题目: 数出0到n(含)中数字2出现了几次. 思路: 1.暴力方法,数出每个数字包含几个2,然后累加起来. 2.分析:分别考虑数字n每一位出现2的次数,如123123: 从左往右考虑4123123: ...

  10. 2014年10月底/终于/HTML5定稿……/技术从来不会成为发展的绝对瓶颈/反而商业成了无法逾越的鸿沟【转载+整理】

    原文地址 本文内容 一.HTML5 诞生 二.HTML5 第一阶段: Web 增强与打破垄断 三.HTML5 第二阶段: 移动互联网 四.HTML5 这回真的来了 五.颠覆原生 App 六.还有什么会 ...