我的应用程序有多个别名,所有这些别名都需要重定向到我们的新别名。根据我当前的规则,我能够使重定向工作,但只能在一种协议(protocol)或另一种协议(protocol)中使用,不能同时使用两种协议(protocol)。
例如,我的 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>
但是如果用户试图访问我们的 example2 的 HTTPS 版本,他们将被重定向回 HTTP 版本。我要如何编写规则才能使协议(protocol)无关紧要?
最佳答案
尝试 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>
关于http - web.config 跨 HTTP 和 HTTPS 重定向多个别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29708477/