我有一个充当代理的 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>