Как не перенаправить, когда cookie установлен в haproxy?

На своем сайте я перенаправляю пользователей с мобильных устройств на мобильный сайт, используя мой балансировщик нагрузки Haproxy. Я получил некоторые жалобы на это и хочу предложить пользователям ссылку на "классический" портал. Поскольку не все подстраницы доступны в мобильном формате, я должен выбрать, доступен ли контент в первую очередь.

    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

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

Теперь я больше не хочу перенаправлять пользователя, когда он / она щелкнул ссылку в мобильной версии, которая устанавливает cookie с именем "CLASSIC".

Cookie установлен правильно и работает нормально. Если я напишу следующее, перенаправление работает:

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

Я также попробовал все мыслимые способы проверки cookie, например, CLASSIC=1 CLASSIC=true CLASSIC=portal и т. Д. И в коде

    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

Почему это не работает?

Спасибо за помощь!

1 ответ

Я думаю, что вы не можете использовать одно и то же имя ACL более одного раза, попробуйте использовать что-то вроде этого:

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
Другие вопросы по тегам