20

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

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

4

1 回答 1

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

有关更多信息,请参阅重定向前缀规则的文档。

如果您使用的是更新版本的 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. }
于 2012-05-01T19:07:16.813 回答