多个http绑定到HTTPS

问题描述 投票:0回答:1

Windows Server 2012

我有1个IIS容器,一个域名有4个不同的URL,一共有2个域名,如下图所示(设置了绑定关系

www.site1.comsite1.comwww.site1.co.uksite1.co.uk

www.site2.comsite2.comwww.site2.co.uksite2.co.uk www.site1.com - 是主域,这意味着上述URL的任何组合都必须将用户带到www.site1.com或www.site2.com。

我有下面的规则,它将这些网站带到主网址上

<rule name="PrimarySite" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="site1.co.uk" />
        <add input="{HTTP_HOST}" pattern="www.site1.co.uk" />
        <add input="{HTTP_HOST}" pattern="site1.com" />
      </conditions>
      <action type="Redirect" url="http://www.site1.com/{R:0}" />
    </rule>

我现在想同样的,但对于HTTPs,所以添加了一个新的规则(只是为网站1,但我会做同样的网站2)。

    <rule name="site1HTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions trackAllCaptures="true" logicalGrouping="MatchAny">
                  <add input="{HTTP_HOST}" pattern="site1.co.uk" />
                  <add input="{HTTP_HOST}" pattern="www.site1.co.uk" />
                  <add input="{HTTP_HOST}" pattern="site1.com" />
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{C:1}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent"/>
            </rule>

当我添加这个我收到一个重定向循环错误,并尝试了不同的组合,但它似乎并不工作。

我错过了什么(我有总规则)?

iis iis-8 windows-server-2012-r2
1个回答
0
投票

对3个{HTTP_HOST}和{HTTPS}使用MatchAny会把重定向逻辑搞乱。

你可以把3个条件合并成一个,这样{HTTP_HOST}和{HTTPS}就可以和 "MatchAll "并排使用。

<rule name="test">
       <match url="(.*)" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="(site1|site2)\.(com|co.uk)" />
            <add input="{HTTPS}" pattern="^off$" />
        </conditions>
      <action type="Rewrite" url="https://{HTTP_HOST}{REQUEST_URI}" />

问好,Sam

© www.soinside.com 2019 - 2024. All rights reserved.