首页 » 资源分享 » PHP » 正文

thinkphp访问一个不存在的Controller或不存在的方法跳转404页面的方法



thinkphp是当下被用得最为广泛的php框架,而在使用thinkphp开发的过程中,我们也许会遇到这样的问题,当我们访问一个不存在的Controller或不存在的方法时会出现报错的界面,这样显得不美观且不安全。
这种情况下,我们的处理方式就是把这些不存在的控制器或方法使用_empty定义至我们的404页面。怎么实现呢,下面是方法。

1、认识_empty()
_empty()方法,是thinkphp框架内置的空方法处理函数,它的作用就是当访问一个不存在的action方法时触发这个函数。

2、只在某个控制器单独定义空方法
在需要这个对空操作做处理功能的控制器中定义一个_empty()方法,里面写你所要写的代码,例如:
public function _empty()
{
header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码
$this->display('Common:404');
}

3、针对Thinkphp当访问一个不存在的Controller
在Controller中新建一个文件EmptyController.class.php,文件中的代码如下:
class EmptyController extends Controller
{
public function index()
{
$this->display('Common:404');
}

public function _empty()
{
header("HTTP/1.0 404 Not Found");//使HTTP返回404状态码
$this->display('Common:404');
}
}