IIS 7.5 重定向/URL 重写至网站的移动版本

IIS 7.5 重定向/URL 重写至网站的移动版本

我正在寻找一个 IIS 解决方案(不是编程)来将网站重定向到网站的移动版本。看起来可能可行,但不确定,使用 IIS 重定向或使用 IIS URL Rewrite 2.0。如果是这种情况,该怎么做?

例如:mywebsite.com/ 重定向至(如果是移动设备)mywebsite.com/mobile

旁注:我们目前正在使用 IIS 重定向将 http 重定向到 https。

答案1

您应该能够在 IIS 重写规则中使用条件。

<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>

我没有 2008R2 机器来测试,并确保我的语法正确,但它足以让你朝着正确的方向前进。

这条规则的基本内容如下:

  • 匹配任意 URL
  • 只要浏览器不是有“nomobile” cookie
  • 请求 URL 确实不是已经有 /mobile 了
  • 用户代理匹配文件的内容。

此规则需要使用自定义提供程序,以便您可以存储所有可能属于移动设备的各种用户代理(并且列表很长)。要设置自定义提供程序,请查看这里

我添加了 cookie 检查,因为有些人仍然喜欢查看完整尺寸的网站,即使在他们的移动设备上也是如此。这为您提供了一种处理这种情况的方法,即在他们的浏览器上设置 cookie,规则会跳过他们。

有一个稍微简单的版本这里这也与几个例子相符。

相关内容