Web.config将一个域重定向到非https文件夹,将另一个域重定向到https文件夹

时间:2013-04-09 19:54:14

标签: url-rewriting web-config rewrite

我的网站有域名别名。我想知道如何将domainA.ext请求重定向到https://domainA.ext/folderA,并将domainB.ext请求重定向到http://domainB.ext/folderB

目前我有以下规则将所有http请求重定向到https,但它会将所有请求重定向到https:

<rule name="Redirect to https" stopProcessing="true">
                    <match url="(.mydomain.ext*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://mydomain.ext}" redirectType="Permanent" />*
                </rule>

它是Windows Server 2008,但我的cms是PHP。

1 个答案:

答案 0 :(得分:3)

我想不出比4种不同规则更简单的东西。

domainA.ext的前两个:

<rule name="Check path folderA" stopProcessing="true">
    <match url="^folderA" negate="true" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="domainA\.ext$" />
    </conditions>
    <action type="Redirect" url="https://domainA.ext/folderA/" />
</rule>
<rule name="Check SSL for domainA" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="domainA\.ext$" />
        <add input="{HTTPS}" pattern="^OFF$" />
    </conditions>                         
    <action type="Redirect" url="https://domainA.ext/folderA/" />
</rule>
  • 第一条规则:如果路径不以folderA开头,则重定向到https://domainA.ext/folderA/
  • 第二条规则:如果HTTPS已关闭,则会重定向到https://domainA.ext/folderA/

domainB.ext的下两个:

<rule name="Check path folderB" stopProcessing="true">
    <match url="^folderB" negate="true" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="domainB\.ext$" />
    </conditions>
    <action type="Redirect" url="http://domainB.ext/folderB/" />
</rule>
<rule name="Check no SSL for domainB" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTP_HOST}" pattern="domainB\.ext$" />
        <add input="{HTTPS}" pattern="^ON$" />
    </conditions>                         
    <action type="Redirect" url="http://domainB.ext/folderB/" />
</rule>
  • 第一条规则:如果路径不以folderB开头,则重定向到http://domainB.ext/folderB/
  • 第二条规则:如果启用了HTTPS,则会重定向到http://domainB.ext/folderB/