Kong网关strip_path路径重写异常及URI字符串替换正则问题求助
问题原因
该异常由Kong默认路径转发规则和你的配置不匹配导致,Kong的转发逻辑为:最终转发至后端的路径 = Service配置的path + (strip_path=true时移除Route匹配到的路径前缀后的剩余请求路径)
你当前配置的问题:
- Route的path配置为
/,所有请求都会命中该路由,strip_path=true只会移除根路径/,原请求路径/applications/openapi会被完整保留 - Service的path配置为
/application,拼接剩余路径后就会出现前缀重复的错误,和你得到的/applicationsapplications/openapi结果一致。
解决方案
方案1:使用原生路由规则实现(无需额外插件)
直接调整服务和路由配置即可满足需求,不需要额外写正则:
- 路由配置:
- Route Path:
/applications - Strip_Path:
True
- Route Path:
- 服务配置:
- Service Path:
/
转发逻辑验证:原请求/applications/openapi匹配到路由前缀/applications后移除,得到剩余路径/openapi,拼接服务路径/后最终转发路径为/openapi,完全符合预期。
- Service Path:
方案2:使用URI正则替换实现
如果有更复杂的路径改写需求,可以通过request-transformer插件配置正则替换:
- 启用
request-transformer插件,在config.replace.uri项配置:
匹配正则:^/applications/(.*)$
替换值:/$1
该配置不需要修改原有服务、路由的path参数,即可实现路径改写。
内容的提问来源于stack exchange,提问作者genius_monkey
相关产品推荐
相关产品推荐

