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

如何通过next.config.js实现仅无参时重定向并添加查询参数?

解决/mypage无参数时自动重定向的问题

问题原因分析

  • 第一种配置的问题:source: '/mypage' 会匹配所有路径为/mypage的请求,无论是否带有查询参数,因此/mypage?offer=123这类带参请求也会被强制重定向到目标地址。
  • 第二种正则配置的问题:重定向后的目标地址路径仍是/mypage,仅新增了查询参数,而你的正则/(mypage$)只校验路径部分,导致重定向后的请求再次被匹配,触发无限循环,最终出现“重定向次数过多”的错误。

正确配置方案

使用重定向规则中的has参数,精准匹配不存在offer查询参数的/mypage请求:

{
  source: '/mypage',
  destination: '/mypage?offer=abc',
  permanent: false,
  has: [
    {
      type: 'query',
      key: 'offer',
      value: '^$' // 匹配offer参数不存在或值为空的情况
    }
  ]
}

如果需要严格匹配完全没有任何查询参数的请求,可调整为:

{
  source: '/mypage',
  destination: '/mypage?offer=abc',
  permanent: false,
  has: [
    {
      type: 'query',
      key: '(.*)',
      value: '^$',
      negate: true // 否定匹配:不存在任何查询参数
    }
  ]
}

配置说明

  • has数组用于添加额外匹配条件,确保只有符合条件的请求才会触发重定向。
  • 第一种方案针对“没有offer参数或offer值为空”的场景,第二种方案严格匹配“无任何查询参数”的请求,可根据实际需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:05:08