Ответ 1
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. }