首页 > 解决方案 > React Router - 在组件中有条件地返回 404

问题描述

这是路线设置:

<Route path="/" component={App}>
  <IndexRoute component={Home}/>
  <Route path="/:subject" component={SubjectPage}/>
  <Route path="*" component={NotFound} />
</Route>

因此,每个主题参数都将转到 SubjectPage 组件,在该组件中,我检查预定义的“有效”主题数组以确定是否应呈现页面。如果主题不在数组中,那么我将重定向到错误页面。

但这里的问题是 Web 服务器无论如何都会返回成功代码 200。这对 SEO 不利。我应该怎么做才能使服务器为无效主题返回成功代码 404?

标签: reactjsreact-reduxreact-routerreact-router-v4react-router-dom

解决方案


无法在客户端更新标头(例如从 200 到 404 的状态代码)。您必须在后端执行此操作。这意味着您需要服务器端渲染 (SSR)

请参阅本教程以设置服务器端渲染并了解如何使用 404 状态服务 NotFound


推荐阅读