IIS从子目录重定向到root

时间:2016-10-03 16:11:33

标签: regex redirect iis url-rewriting

我正在尝试将请求从网站的子目录重定向到其根目录。我知道IIS中有一个重写规则选项,但我不知道如何匹配URL然后重写它。 另一个问题是该网站有2个绑定,使用2个不同的主机名,其中一个与子目录相同。我需要他们两个将对子目录的请求重定向到网站的根目录。

以下是可能的输入及其各自所需输出的列表:

http://host1/host2/abc --> http://host1/abc
http://host1.domain.com/host2/abc --> http://host1.domain.com/abc
http://host2/host2/abc --> http://host2/abc
http://host2.domain.com/host2/abc --> http://host2.domain.com/abc
http://anywebsitename/abc/host2/abc --> http://anywebsitename/abc/host2/abc

注意:

  • ' ABC'可以是任何字符串(包括空字符串)。
  • '主机2'是一个字面常量。
  • '主机2'子目录是根网站的子目录。

1 个答案:

答案 0 :(得分:0)

这很简单,但你需要在IIS中的Host1(URL Rewrite)中应用它。

<rule name="Rule to point host2-abc to host1-abc" stopProcessing="true">
    <match url="host2/abc" />
    <conditions logicalGrouping="MatchAll" rackAllCaptures="false" />
    <action type="Redirect" url="http://host1/abc" />
</rule>

当此规则被命中时(您已经在IIS的Host1区域中),那么只需查找host2 / abc并将其重定向回父级。同样的规则可以应用于您的所有示例。请将此答案标记为正确,如果它解决了您的问题。谢谢!