Hello Everyone,
With some help from Tom at mobiledrupal.com I am trying to get a mobile device
redirect setup. The redirects are working in varnish but I am also trying to
make it so if a mobile user clicks a link on our mobile site with /?nomobi=true
appended it will then not be redirected and will be passed through to our main
site where a cookie will be set to keep them on our main site. Currently my
problem is that I can seem to get around the redirects that I have in place
with req.url /?nomobi=true and a pass call.
Here is my VCL for the mobile setup:
sub device_detection {
# Default to thinking it's a PC
set req.http.X-Device = "pc";
# Add all possible agent strings
# These are the most popular agent strings
if (req.http.User-Agent ~ "iP(hone|od)" || req.http.User-Agent ~
"Android" || req.http.User-Agent ~ "Symbian" || req.http.User-Agent ~
"^BlackBerry" || req.http.User-Agent ~ "^SonyEricsson" || req.http.User-Agent ~
"^Nokia" || req.http.User-Agent ~ "^SAMSUNG" || req.http.User-Agent ~ "^LG" ||
req.http.User-Agent ~ " webOS") {
set req.http.X-Device = "mobile";
}
# These are some more obscure agent strings
if (req.http.User-Agent ~ "^PalmSource"){
set req.http.X-Device = "mobile";
}
if (req.http.X-Device == "mobile" && req.url ~ "^/?nomobi=true$") {
return (pass);
}
# Decide if we need redirection
if (req.http.X-Device == "mobile" && req.url !~ "^/?nomobi=true$") {
if (req.http.host !~ "mv2.example.com" && req.url !~
"^/?nomobi=true$") {
error 750 "mv2.example.com";
}
elseif (req.http.host ~ "mv2.example.com" && req.url !~
"^/?nomobi=true$"){
error 750 "v2.example.com";
}
}
}
sub vcl_recv {
call device_detection;
}
sub vcl_error {
if (obj.status == 750) {
if (obj.response ~ "mv2.example.com") {
set obj.http.Location = "http://mv2.example.com" req.url;
}
elsif (obj.response ~ "v2.example.com") {
set obj.http.Location = "http://v2.example.com" req.url;
}
set obj.status = 302;
}
}
I am fairly new to varnish so forgive me if I am going about this all wrong.
Any insight would be much appreciated!
-kp
__________________
Kevin Pettijohn
Operations & IT
The Daily Insight Group
[email protected]
_______________________________________________
varnish-misc mailing list
[email protected]
http://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc