首页 > 解决方案 > 如何在配置文件中使用 NextJS 重定向

问题描述

我想使用 nextjs 重定向功能将旧路径重定向到新路径,一旦用户到达旧路径,服务器应该返回状态码 301。我有一个这样的配置文件:

module.exports = (phase, { defaultConfig }) => {
  const config = withFonts(
    withImages(
      withSass({
        publicRuntimeConfig: {
          CMS_HOST: process.env.CMS_HOST,
        },
        trailingSlash: true,
        exportPathMap: function() {
          return {
            "/": { page: "/" }
          };
        },
        cssModules: false,
        env: {
          CMS_HOST: process.env.CMS_HOST,
          CMS_HOST_DEV: process.env.CMS_HOST_DEV
        }
      })
    )
  )

  return config;
};

我尝试添加如下函数,但它不起作用:

  module.exports = (phase, { defaultConfig }) => {
  const config = withFonts(
    withImages(
      withSass({
        publicRuntimeConfig: {
          CMS_HOST: process.env.CMS_HOST,
        },
        trailingSlash: true,
        exportPathMap: function() {
          return {
            "/": { page: "/" }
          };
        },
        redirects() {
          return [{
            source: '/team/:slug*',
            destination: '/about-us/:slug*',
            permanent: true,
          }]
        },
        cssModules: false,
        env: {
          CMS_HOST: process.env.CMS_HOST,
          CMS_HOST_DEV: process.env.CMS_HOST_DEV
        }
      })
    )
  )

  return config;
};

谢谢,

标签: reactjsnext.js

解决方案


你失踪asyncredirect

redirects是一个异步函数,它期望返回一个数组,其中包含具有sourcedestinationpermanent属性的对象

参考

https://nextjs.org/docs/api-reference/next.config.js/redirects


推荐阅读