gpt4 book ai didi

php - CodeIgniter 404 页面

转载 作者:IT王子 更新时间:2023-10-29 00:19:59 32 4
gpt4 key购买 nike

当我在我的网站上输入一个不存在的 url 时,它会将我带到 routes.php 中指定的 404 页面:

$route['404_override'] = 'page/not_found';

所以页面的设计就像我在“页面”目录中的 View not_found.php 中所做的那样。

但是,如果我使用此函数手动强制执行 404:

show_404();

它将我带到没有样式的默认 CodeIgniter 404 页面:

404 Page Not Found

The page you requested was not found.

如何让它转到我在路由文件中指定的同一个 404 页面?

最佳答案

这里的所有答案似乎都已经过时(至少从第 2 版开始)或非常矫枉过正。这是一种更简单、更易于管理的方法,它只涉及两个步骤:

  1. application/config/routes.php 中修改字段 404_override 以指向某个 Controller :

    // Specify some controller of your choosing
    $route['404_override'] = 'MyCustom404Ctrl';
  2. 在您的 routes.php 中指定的 Controller 内,实现 index() 方法,以便加载您的自定义错误 404 View 。您可能还想设置一些 header ,以便浏览器知道您正在返回 404 错误:

    // Inside application/controllers/MyCustom404Ctrl.php
    class MyCustom404Ctrl extends CI_Controller {
    public function __construct() {
    parent::__construct();
    }

    public function index(){
    $this->output->set_status_header('404');

    // Make sure you actually have some view file named 404.php
    $this->load->view('404');
    }
    }

就像提到的代码内注释一样,确保在 application/views/404.php 中有一个 View 文件,您实际上在其中拥有自定义 404 页面。

作为旁注,此页面中的一些答案建议您修改/system 中的内容,这是一个坏主意,因为当您更新 CodeIgniter 版本时,您将覆盖您的更改。我建议的解决方案不会弄乱核心文件,这会使您的应用程序更具可移植性和可维护性,并且不易更新。

关于php - CodeIgniter 404 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10775688/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com