2012-05-01 64 views
16

我目前使用Haproxy来平衡几个express.js节点。我知道可以使用express.js进行重定向,但我希望能够使用Haproxy进行重定向。Haproxy重定向www到非www www

我想知道如何从www.mysite.com永久重定向到mysite.com?

回答

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

有关更多信息,请参阅redirect prefix规则的文档。

如果您正在使用HAProxy的一个新版本,即至少1.6,你可以用一个更通用的语法,它允许重定向任何主机,不只是,我们使用的是明确命名

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

这里regsub过滤器可以动态生成正确的主机名,而不需要前缀www.

如果你想周围的其他方法进行重定向,即增加一个www如果没有,则已经,规则变得简单:

http-request redirect prefix http://www.%[hdr(host)] code 301 unless { hdr_beg(host) -i www. } 
+0

你应该加上'代码301'的例子底部与第一个例子保持一致 – bblue