IIS从子域重定向到路径

时间:2015-12-29 09:42:13

标签: asp.net asp.net-mvc iis iis-7 url-rewrite-module

假设我有这样的真实子域名。

test.example.com,是否可以为iis编写规则,将子域名重定向到test.example.com/SomeStaticPage.html

该规则应适用于多级子域,即。 test.aaa.bbb.example.com应重定向到 test.aaa.bbb.example.com/SomeStaticPage.html

1 个答案:

答案 0 :(得分:0)

使用URL Rewrite非常简单,事实上我想知道我是否完全没有得到要求。 (每个域名需要不同的静态页面吗?或者是否只是在没有指定默认页面的情况下保留主机名时重定向到相同的“SomestaticPage.html”?)

像这样的简单规则可以解决您的问题:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="RedirectToSomeStatic" stopProcessing="true">
                    <match url="^$" />
                    <action type="Redirect" url="/SomeStaticPage.html" />
                </rule>
            </rules>
        </rewrite>
    <system.webServer>
</configuration>

现在,如果您正在寻找一个更完整的解决方案,允许您根据主机名指定页面,那么您可以使用重写映射,您可以在其中添加应重定向的主机名以及应该转到哪个页面至。例如,下面的规则将检查它们是否正在请求“/”并且主机名在重写映射中并将使用该页面重定向,如果它不在列表中则它将不会执行任何操作:

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="RedirectToSomeStatic" stopProcessing="true">
                <match url="^$" />
                <action type="Redirect" url="{C:0}" />
                <conditions>
                    <add input="{HostMap:{HTTP_HOST}}" pattern=".+" />
                </conditions>
            </rule>
        </rules>
        <rewriteMaps>
            <rewriteMap name="HostMap">
                <add key="test.example.com" value="/SomeStaticForTestExample.html" />
                <add key="test.a.b.c.example.com" value="/SomePageForTestABC.html" />
            </rewriteMap>
        </rewriteMaps>
    </rewrite>
</system.webServer>