http - web.config 跨 HTTP 和 HTTPS 重定向多个别名

标签 http redirect https asp-classic web-config

我的应用程序有多个别名,所有这些别名都需要重定向到我们的新别名。根据我当前的规则,我能够使重定向工作,但只能在一种协议(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/

相关文章:

Angular/Ionic http 请求忽略 https

java - 由于 SOAP 信封/ header 混淆,Tomcat 中的任意 HTTP 501 未实现错误

ruby-on-rails - 如何在解决超时 session 后重新提交带有 POST 请求的表单?

linux - 将除一个子域以外的所有子域都重定向到 https?

ssl - 客户端、负载均衡器和服务器之间的安全连接

android - 在移动应用程序中嗅探 REST API URL

java - 在锁定屏幕的情况下运行应用程序时,JobScheduler 作业无法启动

java - 在 Clojure 中使用重定向到 http ://foobar. mp3 的 http ://fizzbar. mp3

javascript - redirect_uri 不属于应用程序

shell - 将VxWorks Shell输出重定向到套接字