在codeigniter中,如你所知,一个页面形式为:/class/function/ID
,其中class是 Controller 名,function是 Controller 内部的方法,ID是参数传递给那个方法。
典型的用法是(例如,对于图书网站)将图书 ID 传递给函数,该函数随后会在数据库中查询合适的图书。我的问题是这样的:我在乱搞并随机(在 url 字符串中)输入了一个数据库中不存在的 ID(通过正常的点击浏览,这永远不会发生)并且由于残留查询而导致数据库错误我尝试使用不存在的 ID 执行。
我已经编写了代码来检查在尝试使用 ID 之前是否返回了任何行,但是如果 ID 不存在我希望用户获得 404 错误页面而不是空白页面或其他内容(因为这似乎是正确的功能)。这需要是一个真正的 404 页面(而不是简单地加载一个看起来像 404 页面的 View ),以免干扰搜索引擎。好的 - 所以我的问题是:在正常的程序逻辑流程中(如上所述)我如何使用 codeigniter 强制出现 404 错误?谢谢。
更新:code igniter 有一个show_404('page')
函数,但我认为这不会生成真正的 HTTP 404 错误...
最佳答案
show_404()
实际上为搜索引擎发送正确的 header 以将其注册为 404 页面(它发送 404 状态)。
使用 Firefox 插件检查调用 show_404()
时收到的 header 。您会看到它发送了正确的 HTTP 状态代码。
检查默认的application/errors/error_404.php
。第一行是:
<?php header("HTTP/1.1 404 Not Found"); ?>
该行将 HTTP 状态设置为 404。这就是搜索引擎将您的页面读取为 404 页面所需的全部内容。
关于php - Codeigniter 和 PHP - 强制 404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236768/