【发布时间】:2017-09-13 21:43:17
【问题描述】:
我有 4 台服务器在 azure 中,3 台是负载平衡的,第 4 台仅用于 CMS 目的。
已为主网站添加 SSL 证书,但未为 CMS 所在的 sobdomain 添加 SSL 证书。
我写了一个规则,应该找到任何不包含“后台”的 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>
Url Rewriting 2.1 安装在所有 4 台服务器上,并且我在 azure 中为 https 创建了负载平衡。
手动转到 https 可以正常工作(以及负载平衡)。
附加信息:
我尝试了许多规则,包括现有的答案。我可以看到正在发生的事情,例如以 https 的形式引入的资产,但页面本身不会重定向。
有 2 个负载平衡集,一个用于端口 80,另一个用于端口 443。我不知道这是否正确,或者可能是重定向未发生的潜在原因。
【问题讨论】:
-
如果你用
<match url="(.*)" />替换你的正则表达式会发生什么。这行得通吗? -
重定向仍然没有发生。此外,css/js/imagery 不会加载建议混合 http/https
标签: regex azure iis url-rewriting