IIS 7.5 Redirect / URL Rewrite to 移动版网站

tha*_*mes 7 rewrite website mobile-devices iis-7.5

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

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

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

小智 5

您应该能够在 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>
Run Code Online (Sandbox Code Playgroud)

我没有要测试的 2008R2 机器,并确保我的语法正确,但这应该足以让您朝着正确的方向前进。

这条规则的基础是:

  • 匹配任何网址
  • 只要浏览器具备“nomobile”饼干
  • 请求 URL 中还没有/mobile
  • 用户代理匹配文件的内容。

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

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

这里有一个稍微简单的版本它也与几个示例相匹配。