使用haproxy将* .domain1.com / *重定向到* .domain2.com / *

时间:2016-04-28 12:28:35

标签: server load-balancing haproxy

我正在努力解决一些HAproxy规则,但遗憾的是没有运气。

我们说我有domain1.com和domain2.com。我想将所有内容从domain1.com重定向到domain2.com,包括子域名和参数。

例如:

  • foo.domain1.com => foo.domain2.com
  • foo.domain1.com/?bar => foo.domain2.com/?bar
  • domain1.com/?bar => domain2.com/?bar

我已尝试使用reqrep ^([^\ ]*\) (.*)domain1.com(.*) 1/ domain2.com\2,但它没有做到这一点。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是实现这一目标的一种方法。

acl domain_redirect hdr_end(host) -i domain1.com
http-request set-var(req.new_host) req.hdr(host),regsub(domain1\.com$,domain2.com,i) if domain_redirect
http-request redirect prefix https://%[var(req.new_host)] code 301 if { var(req.new_host) -m found }

我认为此解决方案中只有一个缺点:它似乎丢弃了URL中的锚点。例如:

domain1.com?foo=bar#ze-anchor -> domain2.com?foo=bar

答案 1 :(得分:-1)

将它放在frontend块中:

redirect prefix http://domain2.com code 301 if { hdr(host) -i domain1.com }

答案如下:https://stackoverflow.com/a/19826989/255523