IIS中的网站子域重定向

时间:2014-12-26 09:15:57

标签: asp.net asp.net-mvc http iis url-rewriting

我的IIS 7.5中有2个虚拟目录。这些需要像子域一样被访问。

实施例。

我的域名:mydomain.com

目录1:dir1.mydomain1.com

目录2:dir2.mydomain1.com

当用户尝试使用https时,我还需要强制http方案。我在第一个应用程序的web.config文件中添加了规则:

<rewrite>
    <rules>
        <rule name="Force HTTPS" enabled="true">
            <match url="(.*)" ignoreCase="false" />
            <conditions>
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

当所需的网址为http://mydomain1.com/dir1时,它可以正常运行。网址更改为https://mydomain1.com/dir1请帮助我了解子域规则。

1 个答案:

答案 0 :(得分:0)

此规则适用于从子域重定向。但是,'www'将被视为子域,因此您应该在子域重定向之前处理该子域。

<rule name="Redirect www to nonwww" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" />
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{HTTP_HOST}" pattern="www.mydomain.com" />
        </conditions>
        <action type="Redirect" url="https://mydomain.com/{R:0}" />
</rule>

<rule name="RedirectSubdomain" stopProcessing="true">
<match url="(.*)" />
    <conditions trackAllCaptures="true">
        <add input="{HTTP_HOST}" pattern="(.*).mydomain.com" />
    </conditions>
    <action type="Redirect" url="https://mydomain.com/{C:1}" />
</rule>

根据这两条规则,您的强制https规则可以持续使用。