regex IIS重定向子域和可选路径

lvmkulzt  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(95)

我如何将一个子域重定向到一个路径,但该路径也可能包含子域。它不是任何子域,所以我不需要通配符,但一个特定的,所以例如使用'test'作为子域:

test.example.com/test/this-is-a-test

test.example.com/this-is-a-test

我想让其中一个重定向到:

example.com/test/this-is-a-test

这是我目前拥有的,但我无法让它工作:

<rule name="redirect test.example.com" patternSyntax="ECMAScript" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="^test.example.com(/test)?" />
    </conditions>
    <action type="Redirect" redirectType="Permanent" url="https://www.example.com/test/{R:0}" appendQueryString="true" />
</rule>
6yt4nkrj

6yt4nkrj1#

这本应该是相当简单的,但由于我不熟悉IIS重写模块,它变得复杂了。我误解了一件重要的事情,那就是match url=...实际上不是完整的URL,而是www.example.com之后的路径domain.com/
所以在那次启示之后,它很容易像这样实现:

<match url="^(test)?/?(.*)" />
<conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^test.example.com" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://www.example.com/test/{R:2}" appendQueryString="true" />

相关问题