IIS URL 重写规则 - 测试有效但没有结果

IIS URL Rewrite rule - test works but no results

我在为 IIS 8.5 编写 URL 重写规则时遇到问题。我编写规则的专业知识勉强中等,文档也没有帮助。

我正在尝试重定向以下 URL:

主机名。com/sub1/sub2/sub3/sub4

到这个URL:

主机名。com/sub1/sub6/sub7/sub2/sub4

我的意思是——

我知道我错误地使用了术语变量 - 我所说的变量是指 URL 的那些部分发生了变化,需要被捕获并用作反向引用。

让我用一个例子来说明:

https://hostname.com/application/catalog/v3g5h6j8k9/feline-footwear

至 ->

https://hostname.com/application/showcase/default/catalog/feline-footwear

我写规则的所有尝试都失败了。我确定我做错了。

我以为我已经接近这个了。模式测试全部成功,但它不会接收传入的 URL。我刚收到 404:

            <rule name=“Catalog redir” enabled=“true” stopProcessing="true">
                <match url=“^(.*)/application/catalog/(.*)/(.*)” />
                <action type="Redirect" url=“{R:1}/application/showcase/default/catalog/{R:3}” redirectType="SeeOther" />
            </rule>

我也尝试过使用 ([a-zA-Z0-9_+-]+) 而不是 (.*)

此外,我在树的 /application 级别安装了此规则,而不是根。这可能是不正确的吗?或者说得更好一点,规则在网站树中的位置如何与模式相关联?我在文档中也找不到。

提前感谢您的任何建议。

规则在树中的位置,就其格式而言,是个问题。由于它没有放在根目录中,而是放在 /application 中,一旦我去掉了第一部分,因此匹配的开头 url 是 application,它开始工作了。