我正在学习Code Igniter。基本上,我想做的是当用户转到目录中不存在的URL时显示404错误消息views
。
所以我在application/controllers/
做了一个名为Pages.php
的新文件,如下所示:
<?php
class Pages extends CI_Controller
{
public function view($page = 'home')
{
if(!file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
show_404();
}
$data['title'] = ucfirst($page);
$this->load->view('templates/header');
$this->load->view('pages/'.$page, $data);
$this->load->view('templates/footer');
}
}
?>
然后我在views目录中创建了一个名为templates
的文件夹,其中包含一个header.php
文件和一个footer.php
文件。我还在同一目录下创建了一个pages
文件夹。
因此,当我转到尚不存在的自定义 URLhttp://localhost/codeigniter/pages/about
时,我应该得到的是404 页面未找到消息。
但问题是,浏览器向我显示找不到对象!而不是那个。
那么这有什么问题,我该如何解决这个问题?
这不是 CI 的工作方式。对于初学者来说,pages/about
不存在。常规 URI 方案是Controller
/method
,因此您需要指向pages/view
更深入一点,CI已经有一个错误处理程序(您可以更改的预制模板位于/views/error
,您可以根据错误类型制作不同的错误页面
您的网址
http://localhost/codeigniter/pages/about
上面的网址不正确,用这个代替上面
http://localhost/codeigniter/pages/view/about
网址格式
protocol://domain/class/method/var1/var2/...
Protocol = http://
Domain = localhost/codeigniter (In localhost)
Class = pages
Method = view
Var1 = about
var2 = '' (if any)