Redirecionamento de HAProxy

1

Estou tentando fazer o HAProxy redirecionar para os URIs corretos, caso o URI solicitado não seja www ou não https. O problema que estou encontrando é que ele redireciona assim que atinge uma linha, resultando em múltiplos redirecionamentos.

Esta é minha configuração:

*snip*

frontend traffic-in
    bind *:80
    bind *:443 ssl crt /etc/haproxy/certificate.bundled.pem
    reqrep ^(.*)[^/]$ /
    redirect prefix https://www.example.com 301 if { hdr(host) -i beste.nl } 
    redirect scheme https code 301 if !{ ssl_fc }

*snip*

Se eu fosse para o link , primeiro ele me redirecionaria para o link , seguido pelo link .

Eu quero que ele me redirecione uma vez, não várias vezes, pois isso prejudicaria nosso ranking do Google.

Como posso redirecionar a solicitação para um URI com a barra final AND ssl?

    
por Yordi 06.07.2015 / 14:48

2 respostas

1

Se você dividir um frontend http, isso pode simplificar as coisas

frontend http_in
  bind *:80
  redirect prefix https://www.example.com code 301

frontend https_in
  all www.example.com hdr_sub(host) www.example.com
  bind *:443 ssl crt /etc/haproxy/certificate.bundled.pem
  redirect prefix https://www.example.com code 301 if !www.example.com
  ...
    
por 11.05.2017 / 00:37
0

Você precisa de 3 definições de frontend, assim:

frontend http
    bind *:80
    redirect scheme https code 301 if !{ ssl_fc }

frontend https
    bind *:443 ssl crt /etc/haproxy/certificate.bundled.pem
    #-------------------------
    # todo: use backends here
    #-------------------------

frontend www
    bind *:80
    acl has_www hdr_beg(host) -i www.
    http-request add-header X-Host-Redirect yes if !has_www
    redirect code 301 prefix //www.example.com if !has_www

Resultado: link > > link

    
por 26.11.2017 / 16:31