Kong API Gateway是否有插件可实现重定向后保留浏览器原始URL
Kong重定向保留浏览器原始URL解决方案
没有专门实现“重定向后保留原始URL”的Kong插件,该需求可以通过调整请求转发配置实现,具体逻辑和操作如下:
底层逻辑说明
浏览器地址栏发生跳转,是因为当前Kong配置返回了301/302这类重定向状态码,客户端会主动读取响应头的
Location字段发起新请求,自然会更新地址栏。要保留www.koko.example.com的原始地址,不需要触发客户端重定向,让Kong作为反向代理直接转发请求到目标站点即可,全程客户端感知不到上游的www.fofo.example.com地址,地址栏自然不会变化。
具体配置步骤
- 先移除现有路由中返回3xx重定向的相关配置(比如
request-termination插件、自定义响应头重定向规则等) - 新建/编辑上游服务(Service),上游地址配置为
www.fofo.example.com,如果目标站点是HTTPS协议,需要将服务协议设为https、端口设为443 - 给该服务绑定路由(Route),路由匹配规则设置为域名匹配
www.koko.example.com,路径规则按需配置,全量匹配可填/ - 可选配置:如果目标站点存在强制跳转逻辑,可添加
request-transformer插件修改请求头,避免上游主动返回重定向:- 把请求头
Host设置为上游站点需要的域名(可填www.fofo.example.com) - 新增
X-Forwarded-Host请求头值为$host、X-Forwarded-Proto请求头值为$scheme,传递原始请求信息
- 把请求头
特殊场景兼容
如果上游站点强制返回跳转到www.fofo.example.com的3xx响应,可添加response-transformer插件,将响应头中Location字段的www.fofo.example.com替换为www.koko.example.com,客户端收到的重定向指向原始域名,地址栏不会跳转为上游地址。
内容的提问来源于stack exchange,提问作者yoyo
相关产品推荐
相关产品推荐

