Назад | Перейти на главную страницу

Как не перенаправлять, когда 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, например КЛАССИЧЕСКИЙ = 1 КЛАССИЧЕСКИЙ = истинный КЛАССИЧЕСКИЙ = портал и т. Д. И в коде

    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

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

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

Я думаю, вы не можете использовать одно и то же имя 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