我正在尝试在经典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>
答案 0 :(得分: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
发生的请求路径。
如果您不想将此规则应用于iPad,我们将假设iPad用户代理如下(重要的部分是iPad
一词):
Mozilla / 5.0(iPad; U; CPU iPhone OS 3_2,如Mac OS X; en-us) AppleWebKit / 531.21.10(KHTML,与Gecko一样)Version / 4.0.4 Mobile / 7B314 Safari浏览器/ 531.21.10
(资料来源:What is the iPad user agent?)
然后您可以将规则修改为:
<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|phone
匹配ipad
的位置。 (默认情况下,模式不区分大小写)