Next.js Nextjs、catchall、静态生成和重定向

Next.js Nextjs、catchall、静态生成和重定向,next.js,server-side-rendering,http-status-code-301,getstaticprops,ssg,Next.js,Server Side Rendering,Http Status Code 301,Getstaticprops,Ssg,我有一个使用nextjs 10.1的网站 我正在使用SSG和catchall策略,即在/pages下,我有 -pages --[...slug] ---index.tsx 在我的index.tsx中 export const getStaticProps: GetStaticProps = async (context: any) => { const { params, locale } = context; const slug = params.slug; //multiple s

我有一个使用nextjs 10.1的网站

我正在使用SSG和catchall策略,即在/pages下,我有

-pages
--[...slug]
---index.tsx
在我的index.tsx中

export const getStaticProps: GetStaticProps = async (context: any) => {
const { params, locale } = context;
const slug = params.slug;
//multiple slugs can lead to the same page
...
}

export const getStaticPaths: GetStaticPaths = async () => {
...
return {
    paths,
    // Fallback blocking ensures that pages not listed in getStaticPath will still be rendered with a call to getStaticProps
    fallback: 'blocking',
  };
}
在我的headless cms(primic)中,slug历史被保存(这非常有用),然后多个slug导致同一页,因为我还参数化了fall 到今天为止,为这些多个版本提供了正确的规范标记,并带有指向prismic上参数化的最后一个slug的链接

我想要301

如何从getStaticProps创建301,或者如何构造/pages/[catchall],以便从旧的slug到新的slug都有301


非常感谢你的帮助

如果您在构建时知道重定向,那么应该在
next.config.js
中使用。我在构建时不知道重定向,因为内容可以随时在cms上更改。。。已经将其用于其他重定向