?
Solved

IIS 6 mobile device redirect solution needed

Posted on 2015-02-03
3
Medium Priority
?
279 Views
Last Modified: 2015-02-05
Hello, I have a test project where I need to redirect pages based on if the visitor is using a mobile device. I have looked over several techniques and I think the "easier" technique might be to see if I can  configure the rules in the website's web.config file. The server is windows 2003, iis 6. I have two websites:

1. desktop version: website.com
2. mobile version: m.website.com

If a visitor lands on website.com/page1.html and they are on a mobile device, the web.config rule should redirect them to m.website.com/page1.html

This rule is the same for all pages on the site (website.com/page2.html should redirect user to m.website.com/page2.html, etc.)

I've copy and pasted the below code from http://detectmobilebrowsers.com/ IIS section and it doesn't seem to work at least under IIS6. Does anyone have any information I can review that could work in a website's IIS 6 web.config file? Thank You.


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="MobDedect" stopProcessing="true">
          <match url=".*" ignoreCase="false" />
          <conditions logicalGrouping="MatchAny">
            <add input="{HTTP_USER_AGENT}" pattern="(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino" />
            <add input="{HTTP_USER_AGENT}" pattern="^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-)" />
          </conditions>
          <action type="Rewrite" url="http://detectmobilebrowser.com/mobile" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Open in new window

0
Comment
Question by:Mark B
  • 2
3 Comments
 
LVL 29

Expert Comment

by:Dan McFadden
ID: 40588181
You need to update the following line to reflect your mobile site:

<action type="Rewrite" url="http://detectmobilebrowser.com/mobile" />

Open in new window


Replace that URL with your mobile site.

Dan
0
 
LVL 29

Accepted Solution

by:
Dan McFadden earned 2000 total points
ID: 40588305
As a side note: IMO, I am not so confident that is the best method for managing mobile device requests to a website.  Detecting user agents is like trying to hit a moving target.  They are a forever changing animal.  Also, on my mobile device, I can chose how my browser presents itself to a website.  I have the option of presenting a desktop or mobile UA.

I would go in the direction of detecting the capabilities of the device making a request and adjust the layout based on the display abilities of the browser/device.  This meaning using a responsive design in your CSS and HTML.

There are plenty of frameworks available which are mature and well known:

1. Boot Strap (http://getbootstrap.com)
2. Foundation (http://foundation.zurb.com/)
3. Skeleton (http://getskeleton.com/)

and plenty more...

There are also things like Modernizr (http://modernizr.com/) which help in detecting the capabilities of devices making requests and then adjusting the layout/CSS based on the info detected.

Just an opinion or a little soapboxing... not sure what you may have already tried or what exactly your requirements are.

Dan
0
 

Author Closing Comment

by:Mark B
ID: 40592115
Thanks for the responsive design links, when we are ready for the production project, we will be designing a single responsive site. This project is a test and the requirements with the vendor I am working with was to set two sites so we can collect some data. I've moved on to writing rules with .htaccess with a IIS plug in that allows to use apache rules since there are some many examples on the web for apache.
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

No other job is as rewarding and demanding as building an iPhone app is. It is not really in the hands of the developer for the success of an iPhone app. Many factors operate jointly for every iOS application's success in the market.
The Super Bowl is just days away. Millions of advertising dollars will be spent in just a few hours to drive people to websites around the globe. Optimizing your site in anticipation of a big event like this (and the traffic surges that follow) will…
This video teaches users how to migrate an existing Wordpress website to a new domain.
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…
Suggested Courses
Course of the Month6 days, 16 hours left to enroll

592 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question