php - 如果页面不存在则返回 404 # PHP

标签 php mysql apache http-headers http-status-code-404

我有一个动态评论系统,每页显示 30 条评论,当达到 30 条评论时,它会被分页。所以我有这样的页面

/reviews/city/Boston/

/reviews/city/Boston/Page/2/

/reviews/city/Boston/Page/3/

and so on and so forth

不幸的是,Google 似乎正在通过看似推理的方式为页面编制索引 - 例如

/reviews/city/Boston/Page/65/

此页面绝对不存在,我想通知 Google。目前它显示一个评论页面,但没有评论。我无法想象这对 SEO 非常有利。因此,如果首先检查我的 MySQL 查询的结果数,如果没有结果返回 404 并将它们转发到主页或其他页面,我将尝试做的事情。

目前,这就是我所拥有的。

if (!$validRevQuery) {
    header("HTTP/1.0 404 Not Found");
    header("Location: /index.php");
    exit;
}

我走在正确的轨道上吗?

最佳答案

需要输出404状态,同时显示响应体(=错误页面)。

if (!$validRevQuery) {
    http_response_code(404);
    // output full HTML right here, like include '404.html'; or whatever
    exit;
}

请注意,您不能在此处使用重定向。重定向是一种状态代码,就像 404 一样。您不能有两个状态代码。

关于php - 如果页面不存在则返回 404 # PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3925008/

相关文章:

php - CodeIgniter事件记录: Load One Row at a Time

php - 使用 PhpSpreadsheet 在 PHP 中读取 XLS

php - 如何根据文件上传字段是否选择了文件来运行 php 代码?

php - 非常奇怪的 $_SESSION 行为

php - 如何将 PHP radius 函数与多个变量一起使用?

apache - 使用 mod_auth_cas 和自定义登录单点登录

php - 创建表时php代码中的外键约束

php - 如何显示多张图片上传中的多张图片

java - 将 Apache commons IO 添加到我的项目中

linux - httpd 没有按预期读取conf/httpd.conf 中的文档根目录