我在我的web.config文件中使用以下代码在我的整个网站上强制使用SSL;
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect HTTP to HTTPS" stopProcessing="true">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="^OFF$"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther"/>
</rule>
</rules>
</rewrite>
</system.webServer>
但我想做的是强制仅在~/purchase/
和~/account/
路径下使用ssl。该匹配网址应该是什么?
注意正则表达式也适用于我和通配符。
答案 0 :(得分:6)
您应该使用此模式(这适用于/purchase/something
以及/account/something-else
):
^((purchase|account)/.*)$
您必须记住,该网址不应包含前导斜杠/
。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Force HTTPS" stopProcessing="true">
<match url="^((purchase|account)/.*)$" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
答案 1 :(得分:0)
你会做这样的事情(为简单起见,2个单独的规则)
<match url="/purchase/(.*)"/>