我有一个多租户门户系统,但重写规则在多个条件下不起作用
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{HTTPS1}" pattern="^(website1.com|www.website1.com)$" />
<add input="{HTTPS2}" pattern="^(website2.com|www.website2.com)$" />
<add input="{HTTPS3}" pattern="^(website3.com|www.website3.com)$" />
<add input="{HTTPS4}" pattern="^(website4.com|www.website4.com)$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
我希望当我在我的网络浏览器上访问 http://portal.website1.com 时,该程序应该带我去 https://portal.website1.com 并为 portal.website2.com portal.website3.com,portal.website4 做同样的事情.com
但它仅适用于 portal.website2.com 和 portal.website3.com,它不会在 portal.website1.com 和 portal.website4.com 上强制HTTPS
在system.WebServer
中试试这个:
<system.webServer>
....
<rewrite>
<rules>
<rule name="Force HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URO}" redirectType="Temporary" />
</rule>
</rules>
</rewrite>
</system.webServer>