如何在使用 NextJS 重定向后删除查询参数?

Won*_*nay 15 javascript reactjs next.js

在 NextJS 中,如何使用重定向将 URL like 转换/page?foo=bar/page/bar

我阅读了https://nextjs.org/docs/api-reference/next.config.js/redirects但找不到解决方案。

我今天所拥有的是:

{
   source: '/page',
   has: [
       { 
          type: 'query',
          key: 'foo'
       }
   ],
   destination: '/page/:foo',
   permanent: true
}
Run Code Online (Sandbox Code Playgroud)

但这/page?foo=bar使得/page/bar?foo=bar.

我怎样才能删除查询?

编辑:

所以我意识到这对于 Netlify 根本不起作用。

我尝试遵循https://docs.netlify.com/routing/redirects/但我在查询参数保留方面遇到了同样的问题。

Tra*_*ace 8

您可以使用中间件

只需自己解析查询参数并添加重定向即可。

_middleware.ts在pages目录下存储一个文件:

export async function middleware(req: NextRequest) {
    const { pathname } = req.nextUrl;
    
    if (// Your-thing ) 
        return NextResponse.redirect(//Your-url);

    return NextResponse.next();
}  
Run Code Online (Sandbox Code Playgroud)

也许有不同的方式,我不知道,但这并不重要。