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

Traefik重定向时如何保留请求查询参数?

解决Traefik重定向丢失查询参数的问题

当前重定向后查询参数丢失,是因为auth-redirect中间件的redirectRegex配置没有保留原始请求的查询参数。原正则匹配了域名后的全部内容,但替换时直接丢弃了这部分,导致code这类参数丢失。

修改后的中间件配置

将auth-redirect的正则和替换规则调整为以下内容,即可保留查询参数:

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: auth-redirect
spec:
  redirectRegex:
    permanent: true
    # 捕获域名、路径后的查询参数部分(含?)
    regex: '(http[s]?:\/\/[^\/\s]+)\/oauth\/callback(\?.*)?$'
    # 在目标URL后追加捕获到的查询参数
    replacement: '$${1}/blabla/#/oauth/callback$$2'

原理说明

  • 正则表达式'(http[s]?:\/\/[^\/\s]+)\/oauth\/callback(\?.*)?$'分为两个捕获组:
    • 组1:匹配完整域名(如https://company.com)
    • 组2:匹配查询参数部分(如果存在,格式为?code=blabla;不存在则为空)
  • 替换规则中的$$2会将捕获到的查询参数部分追加到目标URL后,从而保留原始请求的查询参数。

修改后,初始请求https://company.com/oauth/callback?code=blabla会被重定向为https://company.com/blabla/#/oauth/callback?code=blabla,code参数得以保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:45:37