我有一个SSL证书,并在我的web.config中设置了重写规则,以将所有流量定向到https。这工作正常(下面的代码,如果有人发现它有用),但我现在有一个服务我暴露给我的手机客户端,我不希望它使用HTTPS。
我可以创建例外吗?因此,对www.mydomain.com/PhoneService/Seek.svc的任何请求都不会重定向到https://www.mydomain.com .....
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
答案 0 :(得分:4)
您可以对规则使用其他条件,以确保路径不会以seek.svc
结尾:
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{URL}" pattern="seek\.svc$" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
该行:
<add input="{URL}" pattern="seek\.svc$" ignoreCase="true" negate="true" />
检查URL
变量并以seek.svc
结束。我们否定了条件,因为我们只希望规则在不匹配时适用。