NextJs: 404页面后退按钮returns返回404页面

NextJs: 404 page back button returns back to 404 page

我在 user 页面的生命周期方法中有一个条件,如果用户输入带有某些参数(例如 somePage.com/user/1 的 URL 将获取ID 为 1 的用户的数据,但是,如果用户输入 URL 作为 somePage.com/user/1ABC,那么我会将他们路由到自定义 404 页面。我的问题是,当我在 404 页面中单击后退按钮时,我将返回带有 URL somePage.com/user/1ABC 的页面,然后将返回到与 URL 相同的 404 页面] 参数在用户页面的生命周期方法中满足条件。

如果用户进入 404 页面并单击浏览器的后退按钮,我想将用户转到其他 URL。

Router.push 会将新的 URL 添加到历史堆栈中,但是,Router.replace 将重定向到 404 页面而不添加新的 URL 条目到历史堆栈。所以后退按钮将重定向到历史堆栈中最后一个成功的条目,https://nextjs.org/docs/api-reference/next/router#routerreplace给出了一个明确的例子。