You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NextJS 14.2.3中如何在next.config重定向传递正则捕获组?

在Next.js 14.2.3中通过正则分组捕获实现重定向参数传递

完全可以实现,但Next.js的重定向配置不支持直接用原生正则的$1/$2这类反向引用,得用它指定的语法——命名动态参数或正则命名捕获组来传递捕获到的值,以下是对应你需求的可行写法:

场景1:固定路径中的分支匹配

对应你第一个示例的需求,把正则分支改成带约束的命名动态参数即可:

{
  source: '/test/try-:type(code|saas)/do-it-:time(today|tomorrow)',
  destination: '/solution/try-:type/do-it-:time',
  permanent: true,
}

这里:type(code|saas)是带正则约束的命名参数,仅匹配code或saas;:time同理。在destination里直接通过参数名:type、:time引用捕获到的值就行。

场景2:混合通配符与正则捕获

对应你第二个示例的需求,需要用正则命名捕获组提取中间的数字部分:

{
  source: '/:start*/youdonotwantme(?<digit>[0-9]?)/:end*',
  destination: '/:start*/:digit/:end*',
  permanent: true,
}

(?<digit>[0-9]?)是正则命名捕获组,Next.js会自动将捕获到的内容映射为:digit参数,在destination中直接引用即可。另外注意permanent参数是布尔值,不能写成字符串'true',否则会报错。

关键注意点

  • Next.js的重定向语法基于path-to-regexp库,所有正则相关的写法要符合该库的规则,原生正则的反向引用$n不适用。
  • catch-all参数(:start*、:end*)要放在不会导致匹配歧义的位置,避免覆盖其他正则规则。

内容的提问来源于stack exchange,提问作者LCIII

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 21:33:17