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

Spring Cloud Gateway RewritePath路径重写访问/my/**返回404问题排查

问题根因
  • 路由匹配规则错误:当前路由的Path谓词配置为/services/**,仅匹配/services开头的请求,你需要拦截的/my/**开头请求根本无法进入该路由,所以直接返回404
  • 路径重写规则不符合预期:原有RewritePath规则会将/my/xxx重写为/xxx?d=json,缺少你需要的/services前缀,就算请求能进入路由也会转发到后端错误路径。
修正后的配置
server.port= 8888
spring.application.name=my-api

spring.cloud.gateway.routes[0].id = my-api
spring.cloud.gateway.routes[0].uri = https://my-api.com
# 修改谓词匹配/my/**开头的GET请求
spring.cloud.gateway.routes[0].predicates[0]=Path=/my/**
spring.cloud.gateway.routes[0].predicates[1]=Method=GET
# 重写规则:把/my/xxx转为/services/xxx,同时追加固定查询参数
spring.cloud.gateway.routes[0].filters[0]=RewritePath=/my/(?<segment>.*), /services/$\{segment}?d=json
可选优化(更清晰的参数追加方式)

如果不想把查询参数写在RewritePath规则里,可以拆分重写路径和加参数两个过滤器,逻辑更清晰,也避免特殊字符转义问题:

spring.cloud.gateway.routes[0].filters[0]=RewritePath=/my/(?<segment>.*), /services/$\{segment}
spring.cloud.gateway.routes[0].filters[1]=AddRequestParameter=d, json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:27:02