本文實例講述了ThinkPHP3.2.3框架實現(xiàn)的空模塊、空控制器、空操作,跳轉(zhuǎn)到錯誤404頁面。分享給大家供大家參考,具體如下:
【演示準備】
首先下載了一個ThinkPHP3.2.3,目錄結(jié)構(gòu)如下:(只有Home模塊、Index控制器、index操作方法)

然后找了一個簡易的錯誤404頁面404.html放到了根目錄:

【空模塊】
訪問一個不存在的模塊Admin,錯誤提示:

修改根目錄下 ThinkPHP/Library/Think/Dispatcher.class.php 178行代碼:
// E(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME);
header("Location: /404.html");
exit();
再次訪問空模塊:

【空控制器】
訪問Home模塊不存在的控制器User,錯誤提示:

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

通常的處理方法是:在當前模塊下新建一個Empty控制器,在里面做404跳轉(zhuǎn)(A方法實例化Empty控制器)。
EmptyController.class.php:
?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller {
public function index() {
header("Location:/404.html");
exit();
}
}
再次訪問空控制器:

【空操作】
訪問Home模塊下Index控制器不存在的test操作方法,錯誤提示:

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

通常的處理方法是:在當前模塊下新建一個Public控制器(繼承Controller),在里面定義_empty方法跳轉(zhuǎn)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:

再次訪問空操作方法:

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
您可能感興趣的文章:- 讓whoops幫我們告別ThinkPHP6的異常頁面
- Thinkphp 在api開發(fā)中異常返回依然是html的解決方式
- 解決thinkphp5未定義變量會拋出異常,頁面錯誤,請稍后再試的問題
- 關(guān)于ThinkPHP中的異常處理詳解
- thinkPHP線上自動加載異常與修復(fù)方法實例分析
- ThinkPHP中自定義錯誤頁面和提示頁面實例
- TP5(thinkPHP5框架)實現(xiàn)顯示錯誤信息及行號功能的方法
- ThinkPHP下表單令牌錯誤與解決方法分析
- ThinkPHP表單令牌錯誤的相關(guān)解決方法分析
- thinkPHP自動驗證、自動添加及表單錯誤問題分析
- Thinkphp5框架異常處理操作實例分析