Next.js 如何配置 redirects?

推荐答案

在 Next.js 中,可以通过 next.config.js 文件来配置重定向(redirects)。以下是一个简单的示例,展示了如何在 next.config.js 中配置重定向:

-- -------------------- ---- -------
-------------- - -
  ----- ----------- -
    ------ -
      -
        ------- ------------
        ------------ ------------
        ---------- -----
      --
      -
        ------- --------------
        ------------ --------------
        ---------- ------
      --
    --
  --
--

在这个示例中,/old-page 会被永久重定向到 /new-page,而 /blog/:slug 会被临时重定向到 /news/:slug

本题详细解读

1. next.config.js 文件

next.config.js 是 Next.js 项目的配置文件,用于自定义 Next.js 的各种行为。通过在这个文件中配置 redirects,可以实现 URL 的重定向。

2. redirects 函数

redirects 是一个异步函数,返回一个包含重定向规则的对象数组。每个对象包含以下属性:

  • source: 原始路径或路径模式。
  • destination: 目标路径或路径模式。
  • permanent: 布尔值,表示重定向是否为永久重定向。true 表示永久重定向(HTTP 状态码 308),false 表示临时重定向(HTTP 状态码 307)。

3. 路径模式

sourcedestination 中,可以使用动态路径参数(如 :slug),这些参数会在重定向时被替换为实际的值。

4. 示例解析

  • 永久重定向/old-page 会被永久重定向到 /new-page,浏览器会缓存这个重定向,后续访问 /old-page 时会直接跳转到 /new-page
  • 临时重定向/blog/:slug 会被临时重定向到 /news/:slug,浏览器不会缓存这个重定向,每次访问 /blog/:slug 时都会进行重定向。

5. 其他注意事项

  • 重定向规则会按照数组中的顺序依次匹配,第一个匹配的规则会被应用。
  • 如果需要在重定向时传递查询参数,可以在 destination 中使用 :query 参数,例如 /old-page?query=value 重定向到 /new-page?query=value

通过这种方式,Next.js 提供了灵活且强大的 URL 重定向配置能力,能够满足各种场景下的需求。

纠错
反馈