在我的网站上,我使用Haproxy负载均衡器将用户通过移动设备redirect到移动网站。 我收到了一些抱怨,并希望为用户提供一个链接到“经典”门户。 由于并非所有子页面都以移动格式提供,因此我必须select内容是否可用。
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
如果用户正在进入顶层目录,则只需redirect该位置。 如果“移动”用户点击包含完整path的移动格式redirect的内容。 迄今为止,这一切正常。
现在,当他/她点击移动版本中设置名为“CLASSIC”的cookie的链接时,我不希望redirect用户。
该cookie设置正确,工作正常。 如果我写下面的redirect工程:
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
为什么它不起作用?
感谢您的帮助!
我想你不能多次使用相同的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