【问题标题】:IIS 7.5 Redirect only one subdirectoryIIS 7.5 仅重定向一个子目录
【发布时间】:2012-12-21 22:14:54
【问题描述】:

我有一个在 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 http-redirect


【解决方案1】:
  1. 打开 IIS 管理器。打开“运行”对话框 (Windows+R),输入 inetmgr 并按 Enter。为此,您需要管理员权限。

  2. 在左侧窗格中选择您网站内的子文件夹(不是虚拟文件夹)(通过单击文件夹名称),然后在主视图中打开 HTTP Redirect

  3. 选择Redirect requests to this destination 并输入您的目标域名http://www.domain2.com/。检查其他选项(如果它们适用于您)并单击Apply 保存。

  4. 在浏览器中检查重定向。

【讨论】:

  • 我尝试了上述解决方案,但它正在重定向所有子域。
  • @VVutpala 您是否在修改“HTTP 重定向”设置之前选择了子目录first?这个过程已经过测试。它仅重定向子目录。您还有一些其他配置参数可能会覆盖它。
  • 感谢您的回复。是的。我已经更新了我的问题。 “我为具有相同应用程序池和相同虚拟路径的多个用户(a、b、c)部署了相同的应用程序。我只想为用户 c 重定向”。您现在可以提出解决方案吗?
【解决方案2】:

我通过使用重写模块让它工作。 我已将 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>

【讨论】:

    【解决方案3】:

    您不能将重定向应用到子文件夹 c,因为它们共享一个 web.config 文件。当您通过 IIS 添加此设置时,它会将其添加到共享的 web.config。

    删除文件夹 c 或重命名它。在 wwwroot 中创建一个新文件夹,即“c_redirect”。 在 IIS 中创建一个别名为“c”的新虚拟目录,并将其指向新的空文件夹。然后,您可以在 IIS 中向该站点添加重定向,它将使用您的设置在 c_redirect 文件夹中创建一个新的 web.config,并且不会影响父站点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-02
      • 2012-01-18
      • 1970-01-01
      • 2017-01-30
      • 2011-09-16
      • 2013-12-27
      • 2019-11-24
      • 1970-01-01
      相关资源
      最近更新 更多