22

I'm currently using Haproxy to balance several express.js nodes. I know that it's possible to redirect using express.js, but I was hoping to do so with Haproxy.

I was wondering how I can do a permanent redirect from www.mysite.com to mysite.com?

UpTheCreek
  • 31,444
  • 34
  • 152
  • 221
LDK
  • 2,555
  • 5
  • 27
  • 40

1 Answers1

45
redirect prefix http://example.com code 301 if { hdr(host) -i www.example.com }

Please see the documentation of the redirect prefix rule for more information.

If you are using a newer version of HAProxy, i.e. at least 1.6, you can use a more generic syntax which allows to redirect any host, not just explicitly named

http-request redirect prefix http://%[hdr(host),regsub(^www\.,,i)] code 301 if { hdr_beg(host) -i www. }

Here, we are using the regsub filter to dynamically generate the correct hostname without the www. prefix.

In case you want to perform a redirect the other way around, i.e. to add a www if there is none already, the rule becomes simpler:

http-request redirect prefix http://www.%[hdr(host)] code 301 unless { hdr_beg(host) -i www. }
Holger Just
  • 52,918
  • 14
  • 115
  • 123
  • You should add `code 301` to the examples at the bottom for consistency with the first example – bblue Apr 30 '17 at 21:41