我正在尝试弄清楚如何向我的web.config添加规则,以便它检测到.com部分之外的网址中任何的任何链接 - 然后不处理下一个检测设备是否可移动的输入条件,然后重定向到m.mysite.com。
例如,以下是我希望它跳过移动重定向的一些示例:
我确实希望它在所有仅包含www.mysite.com或mysite.com基本域的情况下重定向到移动网站。
这是我当前的web.config重写部分。
<rewrite>
<rules>
<rule name="MobileRedirect" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_COOKIE}" pattern="persistdesktop=1" ignoreCase="true" negate="true"/>
<add input="{HTTP_USER_AGENT}" pattern="android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera mobile|palmos|webos"/>
</conditions>
<action type="Redirect" url="http://m.mysite.com" appendQueryString="false" redirectType="Found"/>
</rule>
</rules>
所以我最好的猜测是我需要在另外两个上面添加另一个条件。然后我将条件logicalGrouping参数更改为MatchAny?或者我是否在此现有规则之上创建另一条规则? 谢谢!
答案 0 :(得分:1)
您尚未为ignoreCase
将true
属性值设置为HTTP_USER_AGENT
。匹配URL模式和查询字符串模式需要进行一些更改。
将重写配置更改为:
<rewrite>
<rules>
<rule name="MobileRedirect" stopProcessing="true">
<match url="^$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_COOKIE}" pattern="persistdesktop=1" negate="true" />
<add input="{HTTP_USER_AGENT}" pattern="android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera" ignoreCase="true"/>
<add input="{QUERY_STRING}" pattern="^$"/>
</conditions>
<action type="Redirect" url="http://m.mysite.com" redirectType="Found" />
</rule>
</rules>
</rewrite>