我正在与通过第三方设置移动网站的客户合作。目前,我们通过 IIS 检查用户代理是否与您的任何标准移动代理匹配,在这种情况下,我们会将用户重定向到移动版本 m.whatever.com。
当用户想要再次查看移动站点时,我们的规则之一要求我们将 cookie 的值设置为 0。
<rules>
<rule name="if httpcookie is , set it to 0" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_COOKIE}" pattern="mobileoptout=1" />
</conditions>
<serverVariables>
<set name="HTTP_COOKIE" value="mobileoptout=0" />
</serverVariables>
<action type="None" />
</rule>
</rules>
如上所述,我们在 URL 和 cookie 值上进行匹配。我已经独立测试了这些,它们按预期工作。但是,在此规则结束时,cookie MobileOptOut 的值仍然是 1 而不是 0。
我已经搜索并尝试了许多站点上的所有示例,但完全无法理解为什么 cookie 的值没有被更改。
cookie 的域是 [whatever.com],它与 www.whatever.com 相同,并且根据之前的测试,它可以从 cookie 中读取以验证条件。
有任何想法吗?
包括一个额外的尝试也不起作用:
<rules>
<rule name="set cookie">
<match url="(.*)" />
<serverVariables>
<set name="HTTP_COOKIE" value="optout=1" />
<set name="{HTTP_COOKIE}" value="optout=2" />
</serverVariables>
<action type="None" />
</rule>
</rules>