【问题标题】:IIS redirect from subdomain to pathIIS 从子域重定向到路径
【发布时间】:2016-04-03 04:19:36
【问题描述】:
假设我有像这样的真实子域。
test.example.com,是否可以为iis编写规则将子域重定向到test.example.com/SomeStaticPage.html
该规则应该适用于多级子域,即。
test.aaa.bbb.example.com 应该被重定向到
test.aaa.bbb.example.com/SomeStaticPage.html
【问题讨论】:
标签:
asp.net
asp.net-mvc
iis
iis-7
url-rewrite-module
【解决方案1】:
使用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>