Php CodeIgniter在前端和后端使用不同的404页面
嗨,我想问一个问题。我正在构建一个项目,其中包含以下文件夹结构:Php CodeIgniter在前端和后端使用不同的404页面,php,codeigniter,http-status-code-404,Php,Codeigniter,Http Status Code 404,嗨,我想问一个问题。我正在构建一个项目,其中包含以下文件夹结构: application - controllers -- posts.php // this is on frontend -- admin --- posts.php // this is on backend obviously 因此,在这两种情况下,如果我试图从url访问一篇不存在的文章,我会这样做 $data['post'] = $this->post_model->get_by_id($id); count
application
- controllers
-- posts.php // this is on frontend
-- admin
--- posts.php // this is on backend obviously
因此,在这两种情况下,如果我试图从url访问一篇不存在的文章,我会这样做
$data['post'] = $this->post_model->get_by_id($id);
count($data['post']) || show_404(); // Return 404 if post not found
count($data['post']) || redirect('admin/admin404'); // on back-end
count($data['post']) || redirect('admin/front404'); // on front-end
显示默认的404 Codeigniter页面
可以为前端和后端设置不同的404页面吗?如果可以,我该怎么做
到目前为止,我认为唯一的选择是:
applicatiom
- controllers
-- front404.php
-- admin
--- admin404.php
所以当我检查帖子是否存在时,它会变成这样
$data['post'] = $this->post_model->get_by_id($id);
count($data['post']) || show_404(); // Return 404 if post not found
count($data['post']) || redirect('admin/admin404'); // on back-end
count($data['post']) || redirect('admin/front404'); // on front-end
3(非测试)。类似于第二个选项,但设置$route['404_override']=''代码>动态
然而,我想知道是否有更有效的方法来做到这一点。顺便说一句,我正在使用CodeIgniter v3。当您
application/controllers/Error404.php
和application/controllers/admin/Error404.php
将$route['404_override']
设置为“Error404
”将导致在访问/admin/不存在的uri时加载admin/Error404.php
不过我必须这么说——你不应该根据列表中是否存在条目来判断404。列表本身仍然存在,即使是空的
application/controllers/admin/Error404.php
application/controllers/Error404.php
您的路由器设置应如下所示
$route['404_override'] = 'Error404';
就是这样。只是一个脑泡:创建admin404.php
内容require'../path_here/front404.php'代码>