На своем сайте я перенаправляю пользователей с мобильных устройств на мобильный сайт, используя свой 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