Перенаправить домен на второй префикс-субдомен с сохранением

Я работаю с HAProxy и хочу иметь возможность перенаправлять весь трафик с домена A на второй домен B с сохранением префикса / поддомена.

Я пробовал такие вещи, как:

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

, который работает, но у меня может быть несколько других доменов, каждый из которых имеет поддомены.

Я хочу иметь возможность делать что-то вроде

redirect prefix http://*.domainA.com code 301 if { hdr(host) -i http://*.domainB.com }
redirect prefix http://*.domainA.com code 301 if { hdr(host) -i http://*.domainC.org }

Домены B и C фактически являются псевдонимами для domainA в этот экземпляр. Есть ли способ сделать это, чтобы мне нужно было только входить в домен псевдонима?

Чтобы еще больше увеличить сложность, в идеале я хотел бы игнорировать, по какому протоколу поступает входящий запрос ( http / https ), и перенаправлять на https

В этом случае Я бы хотел сделать что-нибудь вроде

redirect prefix http://*.domainA.com code 301 if { hdr(host) -i (http|https)://*.domainB.com }
redirect prefix http://*.domainA.com code 301 if { hdr(host) -i (http|https)://*.domainC.org }
2
задан 20 October 2017 в 23:25
1 ответ

Я опубликовал одно решение для этого в другом потоке ( Используйте haproxy для перенаправления .domain1.com / на .domain2.com / ]).

acl domain_redirect hdr_end(host) -i domain1.com
http-request set-var(req.new_host) req.hdr(host),regsub(domain1\.com$,domain2.com,i) if domain_redirect
http-request redirect prefix https://%[var(req.new_host)] code 301 if { var(req.new_host) -m found }

Как я уже упоминал, это решение имеет по крайней мере один недостаток в том, что оно, похоже, отбрасывает привязки из URL. Например:

domain1.com?foo=bar#ze-anchor -> domain2.com?foo=bar
1
ответ дан 3 December 2019 в 12:34

Теги

Похожие вопросы