在多语言配置中使用重写来屏蔽 URL 目标文件

Masking a URL destination file using Rewrite in Multi language config

我正在尝试实施重写,如果目的地是“/dest”到“/new”,它将掩盖目的地 Next.js 文档建议如下

module.exports = {
  async rewrites() {
    return [
      {
        source: '/dest',
        destination: '/new',
      },
    ]
  },
}

我很难将它插入我的代码,其中包含

 rewrites: async () => nextI18NextRewrites(localeSubpaths),
    publicRuntimeConfig: {
        localeSubpaths,
    },

我相信我了解问题所在。一个请求的多次重写是行不通的,它简单地采用第一个匹配的重写。在我的例子中是 { source: '/:lang(en)/:path*', destination: '/:path*' }.

因此,如果我在 ...nextI18NextRewrites(localeSubpaths) 上方添加我的重写,同时还为其手动添加 localeSubpath,它会起作用,例如

module.exports = {
  rewrites: async () => {
    return [
      {
        source: '/en/gardening/london',
        destination: '/services/gardening/london',
      },
      ...nextI18NextRewrites(localeSubpaths),
    ];
  },
  publicRuntimeConfig: {
    localeSubpaths,
  },
};