Como não redirecionar quando o cookie é definido no haproxy?

5

No meu site, redireciono usuários com dispositivos móveis para um site para celular usando o balanceador de carga Haproxy . Recebi algumas reclamações sobre isso e quero oferecer aos usuários um link para o portal "clássico". Como nem todas as subpáginas estão disponíveis em um formato para celular, preciso selecionar se o conteúdo está disponível ou não em primeiro lugar.

    acl path_root path /
    acl path_mobile path_beg /faq
    acl site_classic hdr_sub(cookie) CLASSIC=
    acl ua_smartphone hdr_reg(User-Agent) -i iphone ipod android bada
    redirect location http://s.tld if path_root ua_smartphone !site_classic
    redirect prefix http://s.tld if path_mobile ua_smartphone !site_classic

Se o usuário estiver entrando no diretório de nível superior, apenas redirecione o local. Se o usuário "móvel" acessar o conteúdo disponível no redirecionamento de formato para celular, incluindo o caminho completo. Tudo isso funciona bem até agora.

Agora eu não quero mais redirecionar o usuário quando ele clicou em um link na versão móvel que define um cookie chamado "CLASSIC".

O cookie está definido corretamente e funciona bem. Se eu escrever o seguinte, o redirecionamento funciona:

    acl site_classic hdr_sub(cookie) CLASSIC=
    redirect location http://s.tld if site_classic

Eu também tentei todas as maneiras possíveis de verificar o cookie, por exemplo CLASSIC = 1 CLASSIC = true CLASSIC = portal etc. e no código

    acl site_classic hdr_sub(cookie) CLASSIC
    acl site_classic hdr_sub(cookie) CLASSIC=
    acl site_classic hdr_sub(cookie) CLASSIC=1
    acl site_classic hdr_sub(cookie) CLASSIC=true
    acl site_classic hdr_sub(cookie) CLASSIC=portal

Por que isso não funciona?

Obrigado pela sua ajuda!

    
por OpenHaus 14.12.2011 / 20:24

1 resposta

0

Acho que você não pode usar o mesmo nome de ACL mais de uma vez, tente usar algo assim:

acl site_classic1 hdr_sub(cookie) CLASSIC
acl site_classic2 hdr_sub(cookie) CLASSIC=
acl site_classic3 hdr_sub(cookie) CLASSIC=1
acl site_classic4 hdr_sub(cookie) CLASSIC=true
acl site_classic5 hdr_sub(cookie) CLASSIC=portal

redirect location http://s.tld if site_classic1 or site_classic2 or site_classic3 or site_classic4 or site_classic5
    
por 05.06.2013 / 12:44