为什么我的 IIS URL 重写规则匹配,但没有执行操作?

为什么我的 IIS URL 重写规则匹配,但没有执行操作?

我有一个充当代理的 IIS 框。为了使用 Let's Encrypt,我创建了一条规则,设置为:

匹配模式,通配符,模式 =*/.well-known/*动作,无且stop processing of subsequent rules打开。

尽管测试了模式并且发现http://example.com/.well-known/xxx匹配,但规则从未被满足。

由于时间限制,我忽略了这个问题,只是每隔几个月禁用一次重写规则并更新证书。

错过一次续订后,我决定重新访问,在谷歌搜索了一下之后,我发现其他人有一个解决方案,即将标准设置为使用正则表达式,并将模式设置为\.well-known/acme-challenge/*与我相同的操作。

我很高兴这一切都完美地运行了,然而,考虑到我所做的是在测试器中进行的匹配,我只是不明白为什么规则不起作用,我想知道是否有人知道/可以解释它?

仅供参考,这里是不起作用的 web.config 摘录:

<rule name="Let's Encrypt" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*/.well-known/*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="None" />
</rule>

相关内容