Author Topic: Mobile Device Browser dinamic redirect guide  (Read 550 times)

Offline evildani

  • Administrator
  • Hero Member
  • *****
  • Posts: 290
  • Karma: 17
Mobile Device Browser dinamic redirect guide
« on: February 14, 2009, 04:20:08 AM »
I have a client that has a portal, with very heavy traffic. He wanted all of his sites that had a mobile browser version to be redirected automatically, here is the result, hope someone else finds it usefull:

This will take Host: www.yoursite.com and redirect you to m.yoursite.com

And will work for any number of Host, if you dont want a site to redirected just dont include it in the policy.
We decided this approach so that web crawlers would not end up in the m site.

add responder action mobile_dinamico redirect "\"http://m\"+http.req.HEADER(\"Host\").SUBSTR(3,100)" -bypassSafetyCheck YES

add responder policy Mobile_User_Agent_1 "HTTP.REQ.Host("Host".EQ("www.yoursite.com") && !HTTP.REQ.HEADER(\"Referer\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Smartphone\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Windows CE\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Palm\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"hiptop\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"amoi\")  || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"AvantGo\") ||  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Alcatel-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"AnexTek\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"AU-MIC\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"AUDIOVOX-\") )" mobile_dinamico

add responder policy Mobile_User_Agent_2 "HTTP.REQ.Host("Host".EQ("www.yoursite.com") && !HTTP.REQ.HEADER(\"Referer\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"blackberry\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"BlackBerry\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"BlackBerry\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Blazer\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"CDM-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Dopod-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Ericsson\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Hitachi-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"HPiPAQ-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"HTC-\") )" mobile_dinamico

add responder policy Mobile_User_Agent_3 "HTTP.REQ.Host("Host".EQ("www.yoursite.com")  && !HTTP.REQ.HEADER(\"Referer\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"iPhone\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"iPod\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"KDDI\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"LG\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"MM-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"MO01\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Mobile\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"MOT-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Motorola\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"N515i\") )" mobile_dinamico

add responder policy Mobile_User_Agent_4 "HTTP.REQ.Host("Host".EQ("www.yoursite.com")  && !HTTP.REQ.HEADER(\"Refere\").EXISTS && ( HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"N525i\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"NEC-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Nokia\") ||  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"NOKIA\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"OpenWeb\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Opera mini\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"OPWV\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Pantec\") ||HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"PG-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"PLS\") )" mobile_dinamico

add responder policy Mobile_User_Agent_5 "HTTP.REQ.Host("Host".EQ("www.yoursite.com")  && !HTTP.REQ.HEADER(\"Refere\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"PM-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"PN-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"portalmmm\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"QCI-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"RL-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SAGEM\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Samsung\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SAMSUNG\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SCH\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SCP-\") )" mobile_dinamico

add responder policy Mobile_User_Agent_6 "HTTP.REQ.Host("Host".EQ("www.yoursite.com")  && !HTTP.REQ.HEADER(\"Refere\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SEC-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Sendo\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SGH-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SHARP-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SIE-\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SonyEricsson\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SPH\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"SPV\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"UP.Browser\") )" mobile_dinamico

add responder policy Mobile_User_Agent_7 "HTTP.REQ.Host("Host".EQ("www.yoursite.com")  && !HTTP.REQ.HEADER(\"Refere\").EXISTS && (  HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"UP.Link\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"V60t\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"VI600\") ||HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"VK530\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"VM4050\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"Vodafone\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"VX10000\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"ZTE\") || HTTP.REQ.HEADER(\"User-Agent\").CONTAINS(\"802SH\") )" mobile_dinamico


Bind to your flavor...

Daniel