1

我正在尝试在经典 ASP 中设置一个移动重定向脚本来检测 HTTP 请求,如果它是移动的,它会将请求重定向到该页面的移动版本

因此,如果此链接从移动设备打开:

http://www.example.com/about.asp它将重定向到http://m.example.com/about.asp

我尝试过的大部分脚本都重定向到移动网站主页,但我需要将其重定向到页面级别。

如果这在 IIS7.5 中可行,我也会全力以赴。

我得到了这个帮助,

现在我有一个问题,我有几个文件夹需要阻止它们重新定向。我有一段代码,文件夹没有被重定向,这没关系,但是当我访问任何其他页面时,它会转到主页 m.example.com ....不知道我在这里做错了什么

 <rule name="Mobile Redirect" stopProcessing="true">
     <match url="^(example1|example2|exaple3)/?" ignoreCase="true" negate="true" />
      <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_USER_AGENT}" pattern="^(?!.*ipad).*(midp|mobile|phone).*$" />
        <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
        <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
      </conditions>
      <action type="Redirect" url="http://m.example.com/{R:0}" />
    </rule>
4

1 回答 1

1

使用 IIS 7.5,您可以使用以下规则:

<rule name="Mobile Redirect" stopProcessing="true">
    <match url="^.*$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_USER_AGENT}" pattern="midp|mobile|phone" />
        <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
        <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
    </conditions>
    <action type="Redirect" url="http://m.example.com/{R:0}" />
</rule>

url="^.*$"http://m.example.com如果满足条件,将匹配任何 url 并重定向到发生请求的路径。

如果您不想将此规则应用于 iPad,我们将假设 iPad 用户代理如下(重要的部分是单词iPad在其中):

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10

(来源:什么是 iPad 用户代理?

然后您可以将规则修改为:

<rule name="Mobile Redirect" stopProcessing="true">
    <match url="^.*$" ignoreCase="true" />
    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
        <add input="{HTTP_USER_AGENT}" pattern="^(?!.*ipad).*(midp|mobile|phone).*$" />
        <add input="{HTTP_X-Device-User-Agent}" pattern="midp|mobile|phone" />
        <add input="{HTTP_X-OperaMini-Phone-UA}" pattern="midp|mobile|phone" />
    </conditions>
    <action type="Redirect" url="http://m.example.com/{R:0}" />
</rule>

仅当不存在pattern="^(?!.*ipad).*(midp|mobile|phone).*$"时才会匹配。(默认情况下,模式不区分大小写)midp|mobile|phoneipad

于 2013-05-30T16:24:32.980 回答