我目前正在使用以下规则为我的移动网站版本重写 URL:
<rule name="MOBILE example rule" stopProcessing="true" patternSyntax="ECMAScript">
<match url="^([^/]+)/([^/\.]+)/([^/]+)/([^/]+)/?$" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_USER_AGENT}" pattern="mobile|phone" />
<add input="{HTTP_X-Device-User-Agent}" pattern="mobile|phone" />
<add input="{HTTP_X-OperaMini-Phone-UA}" pattern="mobile|phone" />
</conditions>
<action type="Rewrite" url="/mobile/index.php?lang={R:1}&cat={R:2}&brn={R:3}&mdl={R:4}" />
</rule>
然后,如果用户想要访问网站的“经典”桌面版本,我将“forceNotMobile”cookie 设置为“true”。
问题是......我可以添加什么样的条件来产生这种行为:
如果设置了 cookie,则规则起作用并重写 URL;
否则,如果 cookie 未设置或等于 false,我将停止规则处理而不会重写任何内容;
我想我正在寻找类似的东西:
<add input="{HTTP_COOKIE}" pattern="forceNotMobile=true" negate="true" />
但是“MatchAny”逻辑分组应该是“MatchAll”,这不符合我的“ua-is-mobile”规则。
我可以添加两个<conditions />
块吗?
PS。是我检查UA是否移动的方法吗?我该如何改进它?我只希望智能手机被“重写”到我的移动版本。