Advertisement
kevin25

Varnish redirection to Desktop

Nov 11th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. sub vcl_recv
  2. {
  3.   #no valid cookie, this is a first time user
  4.   if(req.http.Cookie !~ "sitepref=m" && req.http.Cookie !~ "sitepref=www")
  5.   {
  6.     if(req.http.user-agent ~ "iPhone|Android" && req.http.host ~ "^www.beyondyoga.com")
  7.     {
  8.       error 841 "redirect m";
  9.     }
  10.     else if(req.http.user-agent !~ "iPhone|Android" && req.http.host ~ "^m.beyondyoga.com")
  11.     {
  12.       error 842 "redirect www";
  13.     }
  14.   }
  15.   else if(req.http.Cookie ~ "sitepref=m" && req.http.host ~ "^www.beyondyoga.com")
  16.   {
  17.     error 841 "redirect m";
  18.   }
  19.   else if(req.http.Cookie ~ "sitepref=www" && req.http.host ~ "^m.beyondyoga.com")
  20.   {
  21.     error 842 "redirect www";
  22.   }
  23. }
  24.  
  25. sub vcl_fetch
  26. {
  27.   #set the cookie for future requests
  28.   if(req.http.Cookie !~ "sitepref=m" && req.http.Cookie !~ "sitepref=w")
  29.   {
  30.     if(req.http.host ~ "^m.beyondyoga.com")
  31.     {
  32.       set beresp.http.Set-Cookie = "sitepref=m; Domain=beyondyoga.com; Path=/; Expires=Mon, 01 Jan 2024 12:00:00 GMT;";
  33.     }
  34.     else if(req.http.host ~ "^www.beyondyoga.com")
  35.     {
  36.       set beresp.http.Set-Cookie = "sitepref=www; Domain=beyondyoga.com; Path=/; Expires=Mon, 01 Jan 2024 12:00:00 GMT;";
  37.     }
  38.   }
  39. }
  40.  
  41. sub vcl_error
  42. {
  43.   if(obj.status == 841)
  44.   {
  45.     #redirect to m.beyondyoga.com and set sitepref=m
  46.     set obj.http.Location = "http://m.beyondyoga.com" + req.url;
  47.     set obj.status = 301;
  48.     set obj.http.Set-Cookie = "sitepref=m; Domain=beyondyoga.com; Path=/; Expires=Mon, 01 Jan 2024 12:00:00 GMT;";
  49.     return(deliver);
  50.   }
  51.   else if(obj.status == 842)
  52.   {
  53.     #redirect to www.beyondyoga.com and set sitepref=www
  54.     set obj.http.Location = "http://www.beyondyoga.com" + req.url;
  55.     set obj.status = 301;
  56.     set obj.http.Set-Cookie = "sitepref=www; Domain=beyondyoga.com; Path=/; Expires=Mon, 01 Jan 2024 12:00:00 GMT;";
  57.     return(deliver);
  58.   }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement