Solved

IIS 6 mobile device redirect solution needed

Posted on 2015-02-03
3
255 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 27

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 27

Accepted Solution

by:
Dan McFadden earned 500 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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Boost your ability to deliver ambitious and competitive web apps by choosing the right JavaScript framework to best suit your project’s needs.
This article will inform Clients about common and important expectations from the freelancers (Experts) who are looking at your Gig.
Viewers will get an overview of the benefits and risks of using Bitcoin to accept payments. What Bitcoin is: Legality: Risks: Benefits: Which businesses are best suited?: Other things you should know: How to get started:
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

777 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