como redirecionar no esquema solicitado (http ou https)

1

Estou redirecionando para algum domínio com base em uma condição de acl, mas desejo que o usuário acabe em http ou https , dependendo do esquema / protocolo de sua solicitação. Eu consegui fazer isso com as duas linhas mostradas abaixo, mas eu gostaria de convertê-las em apenas uma linha:

http-request redirect code 301 location http://www.example.com%[url] if acl_whatever !{ ssl_fc }
http-request redirect code 301 location https://www.example.com%[url] if acl_whatever { ssl_fc }

Idealmente, gostaria de redirecionar para algo como %[scheme]://www.example.com%[url] , mas %[scheme] não existe.

Existe uma variável ou função que pode retornar http ou https , então não tenho que repetir a regra duas vezes? Talvez, de alguma forma, definindo uma variável contendo o esquema ou talvez usando o valor de %[ssl_fc] , que é 0 ou 1?

    
por cherouvim 16.06.2017 / 12:01

1 resposta

2

Você pode fazer isso usando http-request set-var e %[var(name)] :

http-request set-var(req.scheme) str(https) if { ssl_fc }
http-request set-var(req.scheme) str(http) if ! { ssl_fc }
http-request redirect code 301 location %[var(req.scheme)]://www.example.com%[url] if acl_whatever
    
por 21.06.2017 / 22:24

Tags