React Router-有条件地在组件中返回404

时间:2018-10-18 00:24:02

标签: reactjs react-redux react-router react-router-v4 react-router-dom

这是路线设置:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

请参见this tutorial设置服务器端渲染,并了解如何使用404状态提供NotFound服务