+ -
当前位置:首页 → 问答吧 → thinkphp如何用空操作和空方法解决404问题?

thinkphp如何用空操作和空方法解决404问题?

时间:2011-03-31

来源:互联网

<?php
class EmptyAction extends Action{

public function index(){
            header("Location: /404.html");
            $this->display('Home:Error');

       }
      public function _empty(){
header("Location: /404.html");
            $this->display('Home:Error');
      }
}
?>这样子不行.
对了我没有分组. 会影响到这个功能的实现吗.

作者: cfs40227   发布时间: 2011-03-31

你要设置一下 伪静态, 将找不到的页面 都伪静态到入口文件, 入口文件如果有找不到模块或者方法, 就输出404信息。

你除了 创建一个  EmptyAction 空模块 以外, 还要在每个控制器里面都要建立一个  _empty 方法才行。 每个控制器里面都有。  当然可以用 公用类来避免这样重复的操作。
建立一个公用类控制器:CommonAction.class.php
  1. <?php
  2. class CommonAction extends Action{
  3. function _empty(){
  4. header("Location: /404.html");
  5. }
  6. }
  7. ?>
复制代码
然后 让其他控制器 都继承这个控制器, 如 IndexAction extends CommonAction 这样就行了。

你贴出的 empty方法的代码 好像也有点问题。
header("Location: /404.html"); 你这段代码 都已经转向了。
$this->display('Home:Error'); 这段代码 就不会起作用了。

作者: luofei614   发布时间: 2011-03-31

非常棒的空操作!学习!

作者: vus520   发布时间: 2011-03-31