在具有服务器端呈现的基于React的应用程序中,我使用的是match
utility的React Router。要从某些网址重定向到其他网址,我使用了React Router的Redirect
组件。在服务器端,我正在检查redirect
所采用的回调函数的match
参数(这是Location
对象),以及是否存在此参数(因为它是Redirect
组件匹配),我用它来重定向,如下所示:
if (redirect) {
let { pathname, search } = redirect;
res.redirect(301, `${pathname}${search}`);
}
这是问题所在。在上面的代码片段中,我的服务器将始终使用http代码301重定向,而在某些情况下我需要发送302响应,而在其他情况下需要发送301响应。我无法找到通过React Router传递额外信息的良好惯用方法,然后服务器可以使用该方法来决定301或302重定向。你能提出任何建议吗?