所以我一直在尝试使用以下内容进行重写:
<rules>
<rule name="HttpToHttps" stopProcessing="true"/>
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true"/>
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{URL}"/>
</rule>
<rules>
在两种环境中,这会像它应该的那样重定向。在第三种环境中,它不起作用。从某种意义上说,它不起作用,查看提琴手日志,我看到带有完整 url 的 http 调用。当它重定向到 https 时,它会删除 HTTP_HOST 之后的所有内容。
所以使用以下网址:
不安全的://www.mysite.com/page.aspx?var1=1&var2=2
在两种环境下,它变成
安全://www.mysite.com/page.aspx?var1=1&var2=2
在第三个中它变成:
安全://www.mysite.com
我尝试将其重写为 https://{HTTP_HOST}{HTTP_URL} 并且在前两个环境中将 {URL} 加倍:
安全://www.mysite.com/page.aspx?var1=1&var2=2&var1=1&var2=2
我对 web.configs 不是很有经验,我边走边学,所以如果有人对这里发生的事情有任何意见,将不胜感激。如果它对任何事情有任何影响,那么第三个环境位于两台负载平衡的服务器上。