Redirecionar domínio para segundo preservando prefixo-subdomínio

1

Estou trabalhando com o HAProxy e quero poder redirecionar todo o tráfego do domínioA para um segundo domínioB preservando o prefixo / subdomínio.

Eu tentei coisas como:

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

que funciona, mas posso ter vários outros domínios, cada um com subdomínios.

Eu quero ser capaz de fazer algo como

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 }

Domínios B & C são efetivamente aliases para domainA nesta instância. Existe uma maneira de fazer isso, então eu só preciso de entrada por domínio de alias?

Para aumentar ainda mais a complexidade, seria ideal que eu quisesse ignorar em qual protocolo a solicitação de entrada entra ( http / https ) e redirecionar para https

Para esta instância, eu estaria procurando fazer algo como

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 }
    
por SJC 20.10.2017 / 22:25

1 resposta

0

Eu postei uma solução para isso em um tópico diferente ( Use o haproxy para redirecionar .domain1.com / para .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 }

Como mencionei, essa solução tem pelo menos uma falha, pois parece descartar âncoras da URL. Por exemplo:

domain1.com?foo=bar#ze-anchor -> domain2.com?foo=bar
    
por 23.01.2018 / 16:31