当我在我的网站上输入一个不存在的 url 时,它会将我带到 routes.php 中指定的 404 页面:
$route['404_override'] = 'page/not_found';
所以页面的设计就像我在“页面”目录中的视图 not_found.php 中所做的那样。
但是,如果我使用此功能手动执行 404:
show_404();
它会将我带到没有样式的默认 CodeIgniter 404 页面:
404 Page Not Found
The page you requested was not found.
我怎样才能让它转到我在路由文件中指定的同一个 404 页面?
原文由 user967451 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里的所有答案似乎都非常过时(至少从第 2 版开始)或非常矫枉过正。这是一种更简单且易于管理的方法,它只涉及两个步骤:
routes.php
中指定的控制器内,实施index()
方法,以便它加载您的自定义错误 404 视图。您可能还想设置一些标头,以便浏览器知道您正在返回 404 错误:就像提到的代码内注释一样,确保在 application/views/404.php 中有一个视图文件,您实际上在其中拥有自定义 404 页面。
作为旁注,本页中的一些答案建议您修改 /system 中的内容,这是一个坏主意,因为当您更新您的 CodeIgniter 版本时,您将覆盖您的更改。我建议的解决方案不会弄乱核心文件,这会使您的应用程序更加便携和可维护,并且更耐更新。