haproxy 重定向保留查询字符串

haproxy 重定向保留查询字符串

我可以配置 haproxy 将以 /video1?autoplay=1 结尾的 URL 重定向到其他 URL 但保留查询字符串值吗?

例如

http://domain.com/video1?autoplay=1

需要重定向到

http://newdomain/video/1?autoplay=1

我可以使用 acl 来匹配 /video1,但不知道如何丢弃查询字符串左侧的所有内容

提前致谢

答案1

您可以重定向并保留查询字符串:

  acl path_video1 path /video1
  http-request redirect location /video/1?%[query] if path_video1

如果你想任何数字来工作(例如/video234),它只是稍微复杂一些:

  acl path_video path_reg ^/video[\d+]
  http-request redirect location %[path,regsub(/video,/video/,)]%[query] if path_video

这将使用正则表达式匹配数字部分,然后简单地替换/video/video/,并保留查询字符串。

答案2

我认为 HAproxy 的当前版本不支持这种重定向。真的需要 HAproxy 吗?也许您也可以在本地主机上使用 Apache,让它监听端口 81,然后进行重定向,但通过 mod_rewrite 保留查询字符串。当然,这会增加开销。

答案3

你能解释一下它有什么用吗?它可能很容易在 haproxy 中实现,甚至可以在几天内完成 dev16 之前完成,但在添加功能之前,我需要确信它们的用途。

相关内容