我尝试使用本教程http://maestric.com/doc/php/codeigniter_404
中的自定义404页面我的控制器error.php:
class Error extends Controller{
function error_404()
{
$CI =& get_instance();
$CI->output->set_status_header('404');
echo "error bro";
}
}
当我打开链接localhost / mading / admin / blablabla时,在controoler admin中没有函数blablabla()。 输出:“错误兄弟”
我尝试在方法error_404()中更改行成为下面的代码,
class Error extends Controller{
function error_404()
{
$CI =& get_instance();
$CI->output->set_status_header('404');
$data['title'] = "404 Page Not Found";
$data['body'] = $CI->load->view('web/404','',true);
$CI->load->view('web/web_page',$data);
}
}
但是,当我打开链接localhost / mading / admin / blablabla时,控制器管理员中没有函数blablabla。 输出:空白页。 函数error_404不加载视图。当我打开控制器管理员/ blablabla时,为什么404页面没有加载?
感谢
答案 0 :(得分:0)
阅读该教程的评论,许多人在使用该代码时遇到同样的问题。您是否将第10行的parent :: CI_Router()更改为parent :: __ construct()?
但为什么不设置$ route ['404_override']变量?
答案 1 :(得分:0)
只需在config / routes.php中设置正确的路线:
$route['404_override'] = 'your_controller/show_404';
相应的控制器看起来像那样:
class Your_controller extends CI_Controller {
function __construct() {
parent::__construct();
}
function show_404() {
$this->output->set_header("HTTP/1.1 404 Not Found");
$this->load->view ('common/errors/404'); //wherever your view is
}
}
这应该适合你。