permanentRedirect
permanentRedirect
函数允许你将用户重定向到另一个 URL。permanentRedirect
可以在服务器组件、客户端组件、路由处理程序 和 服务器操作 中使用。
在流式上下文中使用时,它会插入一个元标签以在客户端触发重定向。在服务器操作中使用时,它会向调用方返回一个 303 HTTP 重定向响应。在其他情况下,它会向调用方返回一个 308 (永久) HTTP 重定向响应。
如果资源不存在,你可以使用 notFound
函数 代替。
值得注意的是:如果你更倾向于返回 307 (临时) HTTP 重定向而不是 308 (永久),你可以使用
redirect
函数 代替。
参数
permanentRedirect
函数接受两个参数:
参数 | 类型 | 描述 |
---|---|---|
path | string | 要重定向到的 URL。可以是相对或绝对路径。 |
type | 'replace' (默认值) 或 'push' (在服务器操作中的默认值) | 要执行的重定向类型。 |
默认情况下,permanentRedirect
在 服务器操作 中使用 push
(在浏览器历史堆栈中添加新条目),在其他地方使用 replace
(替换浏览器历史堆栈中的当前 URL)。你可以通过指定 type
参数来覆盖这个行为。
type
参数在服务器组件中使用时没有效果。
返回值
permanentRedirect
不返回任何值。
示例
调用 permanentRedirect()
函数会抛出一个 NEXT_REDIRECT
错误并终止其所在路由段的渲染。
值得注意的是:
permanentRedirect
不需要你使用return permanentRedirect()
,因为它使用了 TypeScript 的never
类型。