我有一个在 IIS 7.5 版本下部署的 asp.net 应用程序,它下面有几个子域。我想将一个特定的子域重定向到另一个 url。
例如:
www.domain1.com/a
www.domain1.com/b
上面的网址应该可以正常工作。
www.domain1.com/c
应该重定向到www.domain2.com
我怎样才能做到这一点?
更新我的要求:我为具有相同应用程序池的多个用户(a、b、c)部署了相同的应用程序。我只想为用户 c 重定向。
我有一个在 IIS 7.5 版本下部署的 asp.net 应用程序,它下面有几个子域。我想将一个特定的子域重定向到另一个 url。
例如:
www.domain1.com/a
www.domain1.com/b
上面的网址应该可以正常工作。
www.domain1.com/c
应该重定向到www.domain2.com
我怎样才能做到这一点?
更新我的要求:我为具有相同应用程序池的多个用户(a、b、c)部署了相同的应用程序。我只想为用户 c 重定向。
打开 IIS 管理器。打开“运行”对话框 ( Windows+R ),键入inetmgr
并按Enter
。为此,您将需要管理员权限。
在左侧窗格中选择您网站中的子文件夹(不是虚拟文件夹)(通过单击文件夹名称),然后HTTP Redirect
在主视图中打开。
选择Redirect requests to this destination
并输入您的目标域名http://www.domain2.com/
。检查其他选项(如果它们适用于您)并单击Apply
保存。
检查浏览器中的重定向。
我通过使用重写模块让它工作。我已将 web.config 更新如下:
<rewrite>
<rules>
<clear />
<rule name="Redirect For c" patternSyntax="ECMAScript" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{PATH_INFO}" pattern="^c$" />
<add input="{PATH_INFO}" pattern="^c/$" />
</conditions>
<action type="Redirect" url="http://domain2.com" />
</rule>
</rules>
</rewrite>
您不能将重定向应用到子文件夹 c,因为它们共享一个 web.config 文件。当您通过 IIS 添加此设置时,它会将其添加到共享的 web.config。
摆脱文件夹 c 或重命名它。在 wwwroot 中创建一个新文件夹,即“c_redirect”。在 IIS 中创建一个别名为“c”的新虚拟目录,并将其指向新的空文件夹。然后,您可以在 IIS 中添加对站点的重定向,它将使用您的设置在 c_redirect 文件夹中创建一个新的 web.config,并且不会影响父站点。