Codeigniter & PHP - 强制404?

2022-08-30 15:51:38

在 codeigniter 中,如您所知,页面的格式为:,其中 class 是控制器名称,函数是控制器中的方法,ID 是传递给该方法的参数。/class/function/ID

典型的用法是(例如,对于书籍网站)将书籍ID传递给函数,然后该函数将在数据库中查询适当的书籍。我的问题是这样的:我乱搞并随机(在url字符串中)键入数据库中不存在的ID(正常的指向和点击浏览永远不会发生),并且由于我试图使用不存在的ID执行的剩余查询,我得到了数据库错误。

我已经编写了代码来检查在尝试使用ID之前是否返回了任何行,但是如果ID不存在,我希望用户获得404错误页面而不是空白页面或其他内容(因为这似乎是正确的功能)。这需要是一个真正的404页面(而不是简单地加载一个看起来像404页面的视图),以免与搜索引擎搞砸。好的 - 所以我的问题是这样的:在正常的程序逻辑流中(如上所述),我如何使用codeigniter强制404错误?谢谢。

更新:代码点火器有一个功能,但我认为这不会产生一个真正的HTTP 404错误...show_404('page')


答案 1

show_404()实际上,为搜索引擎发送正确的标头以将其注册为404页面(它发送404状态)。

使用 Firefox 插件检查调用 时收到的标头。您将看到它发送了正确的HTTP状态代码。show_404()

检查默认值 。第一行是:application/errors/error_404.php

<?php header("HTTP/1.1 404 Not Found"); ?>

该行将 HTTP 状态设置为 404。这就是搜索引擎将页面作为404页面阅读所需的全部内容。


答案 2
        $this->output->set_status_header('404');

以生成 404 个标头。


推荐