我在Azure中有4个服务器,其中3个是负载均衡的,第4个仅用于CMS目的。
主网站已添加SSL证书,但是CMS所在的子域没有添加证书。
我编写了一个规则,应该可以找到任何不包含“backoffice”的URL,并匹配任何其他页面来将其更改为https。
在regexr.com上这个规则可行,但由于某种原因,在实际环境中却无法正常工作。
所有4台服务器都已安装Url Rewriting 2.1,并且我在Azure中创建了一个负载均衡集合以用于https。手动访问https(连同负载平衡)可以正常工作。
其他信息:我尝试了很多规则,包括现有的答案。我可以看到发生的事情,比如资产被作为https引入,但页面本身没有重定向。有2个负载平衡集合,一个用于80端口,另一个用于443端口。我不知道这是否正确,或者可能是重定向未发生的潜在原因。
主网站已添加SSL证书,但是CMS所在的子域没有添加证书。
我编写了一个规则,应该可以找到任何不包含“backoffice”的URL,并匹配任何其他页面来将其更改为https。
在regexr.com上这个规则可行,但由于某种原因,在实际环境中却无法正常工作。
<rewrite>
<rules>
<rule name="http to https" stopProcessing="true">
<match url="(https?:\/\/(?!backoffice).*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://www.WEBSITENAME.com{R:1}" />
</rule>
</rules>
</rewrite>
所有4台服务器都已安装Url Rewriting 2.1,并且我在Azure中创建了一个负载均衡集合以用于https。手动访问https(连同负载平衡)可以正常工作。
其他信息:我尝试了很多规则,包括现有的答案。我可以看到发生的事情,比如资产被作为https引入,但页面本身没有重定向。有2个负载平衡集合,一个用于80端口,另一个用于443端口。我不知道这是否正确,或者可能是重定向未发生的潜在原因。
<match url="(.*)" />
,会发生什么?这样行得通吗? - evilSnobu