我的应用程序有多个别名,所有这些别名都需要重定向到我们的新别名。根据我目前的规则,我能够使重定向工作,但只能在一个协议或另一个协议中,而不是两者。
例如,我的web.cong规则如下所示:
<rule name="Redirect_Alias_1" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="*example1.com" />
</conditions>
<action type="Redirect" url="http://example2.com" />
</rule>
但是如果用户试图访问我们的HTTPS版本的example2,他们会被重定向回HTTP版本。如何编写规则以使协议无关紧要?
答案 0 :(得分:0)
尝试2条规则,每条规则都有条件检查HTTPS服务器变量。
<rule name="Redirect_Alias_1" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTPS}" pattern="OFF" />
<add input="{HTTP_HOST}" pattern="*example1.com" />
</conditions>
<action type="Redirect" url="http://example2.com" />
</rule>
<rule name="Redirect_Alias_2" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTPS}" pattern="ON" />
<add input="{HTTP_HOST}" pattern="*example1.com" />
</conditions>
<action type="Redirect" url="https://example2.com" />
</rule>