Haproxy redirect www to non-www
Asked Answered
C

1

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?

Clad answered 1/5, 2012 at 17:28 Comment(0)
S
46
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. }
Stereophonic answered 1/5, 2012 at 19:7 Comment(1)
You should add code 301 to the examples at the bottom for consistency with the first exampleThrenody

© 2022 - 2024 — McMap. All rights reserved.