thinkPHP到底怎么设置404错误页面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkPHP到底怎么设置404错误页面相关的知识,希望对你有一定的参考价值。
1、首先要在Lib/Action 下建立EmptyAction.class.php模块内容如下:
复制代码 代码如下:
<?php
/*
* @author rocky
* @date 20141021
* @desc 空模块404等错误
* */
class EmptyAction extends CommonAction
function _empty()
header("HTTP/1.0 404 Not Found");
$this->display('Public:404');
?>
2、做完以上处理,只能在访问到空模块的时候才会访问404页面,所以,为了访问空方法也访问404页面,我们还需要在CommonAction.class.php增加一个空方法了,方法如下:
复制代码 代码如下:
//处理所有没有的方法的处理方法,引导到404页面
public function _empty()
R('Empty/_empty');
3、做完以上工作基本可以了,但是别忘了把你的404.html页面放在Tpl/Public下 参考技术A 404 页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>很抱歉,您搜索的书搬家啦-言书库!</title>
<style type="text/css">
body margin: 0px; padding:0px; font-family:"微软雅黑", Arial, "Trebuchet MS", Verdana, Georgia,Baskerville,Palatino,Times; font-size:16px;
divmargin-left:auto; margin-right:auto;
a text-decoration: none; color: #1064A0;
a:hover color: #0078D2;
img border:none;
h1,h2,h3,h4
/* display:block;*/
margin:0;
font-weight:normal;
font-family: "微软雅黑", Arial, "Trebuchet MS", Helvetica, Verdana ;
h1font-size:44px; color:#0188DE; padding:20px 0px 10px 0px;
h2color:#0188DE; font-size:16px; padding:10px 0px 40px 0px;
#pagewidth:910px; padding:20px 20px 40px 20px; margin-top:80px;
.buttonwidth:180px; height:28px; margin-left:0px; margin-top:10px; background:#009CFF; border-bottom:4px solid #0188DE; text-align:center;
.button awidth:180px; height:28px; display:block; font-size:14px; color:#fff;
.button a:hover background:#5BBFFF;
</style>
</head>
<body>
<div id="page" style="border-style:dashed;border-color:#e4e4e4;line-height:30px;background:url(sorry.png) no-repeat right;">
<h1>腹有诗书气自华~</h1>
<h2>言书库,完本小说在线阅读网址 </h2>
<meta http-equiv="refresh" content="1.5;url=http://www.yanshuku.com">
<font color="#666666">2秒内,若网页未能自动跳转,请点击下面按钮进行跳转!</font><br /><br />
<div class="button">
<a href="http://www.yanshuku.com" title="进入首页">立即进入首页</a>
</div>
</div>
</body>
</html>
TP配置:
无法加载模板跳向404页面
/thinkphp/library/think/Dispatcher.class.php中176行
// 加载模块的扩展配置文件
load_ext_file(MODULE_PATH);
else
header("Location:/404.html");die;
// E(L(‘_MODULE_NOT_EXIST_‘).‘:‘.MODULE_NAME);
加上header跳转页面,404.html放在跟下
无法加载控制器跳向404页面
创建一个EmptyController.class.php 代码如下
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller
public function _empty()
$this->display(‘Error/404‘);//在Home/view中Error文件夹中
这样就行
无法加载方法跳向404页面
在/thinkphp/library/think/Controller.class.php在170行加上重跳转404页面
public function __call($method,$args)
if( 0 === strcasecmp($method,ACTION_NAME.C(‘ACTION_SUFFIX‘)))
if(method_exists($this,‘_empty‘))
// 如果定义了_empty操作 则调用
$this->_empty($method,$args);
elseif(file_exists_case($this->view->parseTemplate()))
// 检查是否存在默认模版 如果有直接输出模版
$this->display();
else
$this->display(‘Error/404‘);
// E(L(‘_ERROR_ACTION_‘).‘:‘.ACTION_NAME);
else
E(__CLASS__.‘:‘.$method.L(‘_METHOD_NOT_EXIST_‘));
return;
Thinkphp5笔记七:设置错误页面①
设置网站的错误提示页面,也是一个很重要的环节。
一、空操作
在当前控制器里面增加E_empty操作
public function _empty(){ $this->error(‘方法不存在‘); } Public function index(){ }
测试方法:
正常:
http://localhost/thinkphp/index/index/index
错误: 会提示“方法不存在”
http://localhost/thinkphp/index/index/df
二、空控制器
在模块下建立Error控制器,
位置: index/error.php 相关参数:empty_controller
代码:
<?php /** * 前端首页 * */ namespace app\index\controller; use app\index\controller; class Error extends IndexBase { public function index(){ echo ‘访问的控制器不存在‘; } }
测试:http://localhost/thinkphp/index/inde3dfx/index
三、异常错误抛出
能够影响它的是,当前模块下的配置文件。如果当前配置文件无效,则会自动锁定公共模块下的配置参数
相关参数:exception_tmpl,error_message
// 异常页面的模板文件 ‘exception_tmpl‘ => THINK_PATH . ‘tpl‘ . DS . ‘think_exception.tpl‘,
以上是关于thinkPHP到底怎么设置404错误页面的主要内容,如果未能解决你的问题,请参考以下文章