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

HAProxy如何实现URL重定向时保留相同的路径/URI

HAProxy 跨域名全路径保留重定向配置方案

核心实现逻辑

不用逐URL匹配base,HAProxy内置的重定向指令支持直接引用原请求路径变量,仅替换域名部分即可实现需求。

最简配置示例

  1. 首先定义ACL匹配原请求域名:
# 匹配旧域名,-i表示忽略大小写,可同时匹配带www的域名
acl is_old_domain hdr(host) -i test1.com www.test1.com
  1. 配置重定向规则:
# 301永久重定向,prefix后填写新域名,HAProxy会自动拼接原请求的完整路径+查询参数
redirect prefix https://test2.com code 301 if is_old_domain

完整frontend配置参考

frontend https_in
    bind *:443 ssl crt /etc/haproxy/ssl/
    # 旧域名匹配规则
    acl is_old_domain hdr(host) -i test1.com www.test1.com
    # 重定向规则
    redirect prefix https://test2.com code 301 if is_old_domain
    # 其他原有业务配置
    default_backend app_server

进阶场景说明

  • 临时重定向需求:把code 301改为code 302即可
  • 非标准端口场景需要保留原端口:改用redirect location写法,手动拼接完整地址:
redirect location https://test2.com:%[dst_port]%[capture.req.uri] code 301 if is_old_domain

其中%[capture.req.uri]会直接读取原请求的完整URI(含路径和所有查询参数)

  • 多旧域名跳转同一新域名:直接在ACL规则后追加所有需要跳转的旧域名即可,无需新增重定向规则:
acl is_old_domain hdr(host) -i test1.com www.test1.com test3.com www.test3.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:39:02