我的"默认网站"我有一个重写规则。 (也就是在我的wwwroot' web.config中)将所有HTTP请求重定向到HTTPS,如下所示:
<rule name="http to https" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
现在我想在此下禁用或排除虚拟目录,这样我才能通过HTTP实现这一目标。怎么做?
我尝试过:创建一个与virt.dir名称匹配的规则,并选择停止任何进一步的操作(不成功):
<rule name="testsite no https" enabled="true" stopProcessing="true">
<match url="(testsite)" ignoreCase="true" />
<action type="None" />
<conditions>
<add input="{URL}" pattern="(testsite)" />
</conditions>
</rule>
为第一条规则添加了否定条件(没有成功)
<add input="{URL}" pattern="(testsite)" negate="true" />
我做错了什么?
答案 0 :(得分:2)
您不需要单独的规则。
此外,您可以在虚拟目录中添加web.config并在下面执行
<system.webServer>
<rewrite>
<rules>
<remove name="testsite no https" />
</rules>
</rewrite>
</system.webServer>
或者
将您的匹配条件从<match url="(.*)" />
更改为<match url="^((?!testsite).)*$" />
,所以基本上这适用于所有网址,但包含测试网站的网址除外。
希望这有帮助。