【问题标题】:IIS redirect from subdirectory to rootIIS 从子目录重定向到根目录
【发布时间】:2016-10-03 16:11:33
【问题描述】:

我正在尝试将请求从网站的子目录重定向到其根目录。我知道 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'可以是任意字符串(包括空字符串)。
  • 'host2' 是一个字面常量。
  • 'host2' 子目录是根网站的子目录。

【问题讨论】:

    标签: regex redirect iis url-rewriting


    【解决方案1】:

    就是这么简单,但是你需要在 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 并将其重定向回父级。相同的规则可以应用于您的所有示例。如果它解决了您的问题,请将此答案标记为正确。谢谢!

    【讨论】:

    • 请注意'abc'可以是任何字符串,它不是一个常数。如果客户端向host1/host2/abc发送请求,我想将其重定向到host1/abc,但如果客户端向host1/host2/xyz发送请求,我想将其重定向到host1/xyz。此外,当包含 rackallcaptures 属性(Unrecognized attribute 'rackAllCaptures' )时,我得到了 500.52 响应。
    猜你喜欢
    • 2019-07-20
    • 2021-11-26
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2011-10-24
    • 2015-05-30
    相关资源
    最近更新 更多