如何使用 Strapi 返回 404 HTTPS 状态代码

问题描述 投票:0回答:1

我有一个网站,在前端使用 React,在后端使用 Strapi。

为了处理我的 404 页面,我只需在 App.tsx 中添加以下代码:

<Routes>
    ...
    <Route path="*" element={<Page404 />} />
</Routes>

我的 Page404 组件看起来像这样:

import { Helmet } from "react-helmet-async";

const Page404 = () => {
    return (
        <>
            <Helmet>
                <title>404 - Page Not Found</title>
                <meta name="robots" content="noindex" />
                <meta name="description" content="Page not found." />
                <link rel="canonical" href={window.location.href} />
                <script>{`document.status = 404`}</script>
            </Helmet>
            {My content here}
        </>
    );
};

export default Page404;

如果用户尝试访问不存在的页面,我的 404 页面会按预期显示。但我不确定 SEO 爬虫是否理解该页面不存在。

如您所见,我添加了一个小脚本来更改文档的状态,但我不知道如何处理网络 DevTools 中出现的“http 404 代码”。在 PHP 中,我只需添加以下代码:

<?php
http_response_code(404);
?>

目前,我在 Google 搜索控制台上看到页面,即使它们不存在于我的“sitemap.xml”文件中。

有人知道我添加的脚本是否足够 SEO 爬虫吗?如果没有,有没有办法从 Strapi 发回 404 错误代码?

谢谢。

reactjs seo http-status-code-404 strapi google-search-console
1个回答
0
投票

要在 Strapi 中返回 404 HTTPS 状态代码,您通常需要创建一个自定义控制器或修改现有控制器来处理找不到资源的情况。这是实现这一目标的分步指南:

第 1 步:创建或修改控制器

  1. 导航到您的 Strapi 项目:转到您的 Strapi 项目的目录。

  2. 创建或编辑控制器:

    • 如果您要修改现有控制器(例如,针对内容类型),请导航至
      ./src/api/[your-content-type]/controllers/[your-controller].js
    • 如果您要创建新控制器,请在同一目录中创建一个文件。
  3. 返回 404 状态代码:在控制器操作中,您可以使用

    ctx
    对象发送 404 响应。以下是如何执行此操作的示例:

// Example: custom-controller.js
module.exports = {
  async findOne(ctx) {
    const { id } = ctx.params;

    // Assume you have a service to find your resource
    const entity = await strapi.services['your-content-type'].findOne({ id });

    if (!entity) {
      return ctx.notFound('Resource not found'); // This will send a 404 status
    }

    return entity;
  },
};

第 2 步:定义路线

如果您要创建新路线或修改现有路线,请确保您的

routes.json
文件包含正确的路径:

{
  "routes": [
    {
      "method": "GET",
      "path": "/your-content-type/:id",
      "handler": "custom-controller.findOne",
      "config": {
        "policies": []
      }
    }
  ]
}

第 3 步:测试您的 API

  1. 启动您的 Strapi 服务器:确保您的 Strapi 服务器正在运行。

  2. 测试端点:使用Postman或CURL等工具来测试端点。尝试访问不存在的资源(例如,不存在的 ID)。

您应该收到包含 404 状态代码和消息“资源未找到”的响应。

其他注意事项

  • 错误处理中间件:您可能还需要考虑实现全局错误处理中间件以一致地管理不同类型的错误和响应。
  • 自定义错误消息:您可以自定义 404 状态返回的消息,以在需要时提供更多上下文。

此方法使您可以控制响应,并帮助管理在找不到资源时 API 与客户端的通信方式。

如果您需要任何类型的 SEO 帮助,您可以访问此[技术 SEO][1]:https://www. Fiverr.com/s/o8xWeB4

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.