7

I'm looking for an IIS solution (not programming) to redirect a website to a mobile version of the website. It looks like it might be possible, but not sure, with IIS Redirect or using IIS URL Rewrite 2.0. If this is the case how would one go about this?

Example: mywebsite.com/ redirects to (if mobile device) mywebsite.com/mobile

Side Note: We are currently using IIS Redirect to redirect http to https.

thames
  • 955
  • 3
  • 10
  • 20

1 Answers1

5

You should be able to use a condition in your IIS rewrite rule.

<rule name="MobileBrowser" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAll">
    <add input="{HTTP_COOKIE}" pattern="nomobile" ignoreCase="true" negate="true" />
    <add input="{REQUEST_URI}" pattern="/mobile.*" negate="true" />
    <add input="{FileContains:{HTTP_USER_AGENT}}" pattern=".+" />
  </conditions>
  <action type="Rewrite" url="http://mysite.com/mobile" appendQueryString="false" redirectType="Found" />
</rule>

I don't have a 2008R2 machine to test, and make sure my syntax is correct but it should be enough to get you in the right direction.

The basics of this rule says:

  • Match any URL
  • As long as the browser does not have the "nomobile" cookie
  • The request URL does not already have /mobile in it
  • The user agent matches the contents of a file.

This rule requires the use of a custom provider so you can store all the various user agents that might be mobile (and there is a long list of them). To setup the custom provider, take a look here.

I added the cookie check as some people still like to look at the full size site, even on their mobile device. This gives you a way to handle that by setting a cookie on their browser, and the rule skips them.

There is a slightly simpler version here that matches on a couple of examples too.

Jon Angliss
  • 1,782
  • 10
  • 8