标准端口443

时间:2018-11-07 11:25:09

标签: iis https url-redirection

我的IIS7服务器上有两个站点,一个PROD和一个TEST。 PROD绑定到默认的443和80,TEST绑定到8443和8080。

在两个站点上,我都希望具有以下URL重定向:

关于PROD:

http://example.com/club-> / Club / ClubUser

https://example.com/club-> / Club / ClubUser

在测试中:

http://example.com:8080/club-> / Club / ClubUser

https://example.com:8443/club-> / Club / ClubUser

所以基本上在任何情况下我都只想更改URI。协议没有变化,我不想将http流量重定向到https。

在两个站点上,我都定义了相同的URL重写规则,请参见下文。重定向可以在4种情况下的3种情况下正常工作,并且不适用于这种情况:

https://example.com/club-> / Club / ClubUser

相反,发生了以下重定向(因此https被重定向到http):

https://example.com/club-> http://example.com/Club/ClubUser

进行各种测试之后,似乎URL中存在端口时,重定向正确发生。默认为port时,它将重定向到http URL,但我不明白原因。

两个站点上的规则定义如下:

<rule name="Club redirect HTTP" patternSyntax="ExactMatch" stopProcessing="true">
    <match url="club" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="http://{SERVER_NAME}:{SERVER_PORT}/Club/ClubUser" appendQueryString="false" />
</rule>
<rule name="Club redirect HTTPS" patternSyntax="ExactMatch" stopProcessing="true">
    <match url="club" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="on" />
    </conditions>
    <action type="Redirect" url="https://{SERVER_NAME}:{SERVER_PORT}/Club/ClubUser" appendQueryString="false" />
</rule>

我尝试使用{HOST_NAME}而不是{SERVER_NAME}:{SERVER_PORT},但这也无济于事。

0 个答案:

没有答案