【问题标题】:File not found error message does not appear in Code Igniter未找到文件错误消息未出现在 Code Igniter 中
【发布时间】:2019-03-19 02:57:17
【问题描述】:

我正在学习 Code Igniter。基本上我想要做的是当用户转到views 目录中不存在的 URL 时显示 404 错误消息。

所以我在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 文件夹。

因此,当我转到尚不存在的 http://localhost/codeigniter/pages/about 等自定义 URL 时,我应该得到一个 404 Page Not Found 消息。

但问题是,浏览器向我显示 找不到对象! 而不是那个。

那么这有什么问题,我该如何解决这个问题?

【问题讨论】:

    标签: php codeigniter http-status-code-404 codeigniter-3


    【解决方案1】:

    这不是 CI 的工作方式。对于初学者,pages/about 不存在。常规 URI 方案是 Controller/method,因此您需要指向 pages/view

    再深入一点,CI 已经有一个错误处理程序(您可以更改的预制模板位于/views/error,您可以根据错误类型制作不同的错误页面

    【讨论】:

    【解决方案2】:

    您的网址

    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)

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      相关资源
      最近更新 更多