IIS URL重写RegEx未按预期运行

tcomlyy6  于 2022-12-29  发布在  其他
关注(0)|答案(1)|浏览(125)

我正在尝试设置IIS URL重写规则,以将www.example.com的所有流量重定向EXAMPLE.com到www.EXAMPLE.com,除非 * 请求是针对特定路径。
我尝试修改我的重写规则,以便它将重定向所有请求
除了如果路径包括/.well-known/acme-challenge/...但它不工作,它仍然重定向。我不知道我做错了什么:/
我试过使用{PATH_INFO}{REQUEST_URI},但是都不起作用。negate="true"不起作用吗?

<rule name="Redirect EXAMPLE.com to www.EXAMPLE.com" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^EXAMPLE.com$" />
        <add input="{PATH_INFO}" pattern="^.*/\.well-known/acme-challenge/.*$" negate="true" />
    </conditions>
   <action type="Redirect" url="https://www.EXAMPLE.com/{R:0}" />
</rule>

Screenshot of Inbound Rule in GUI

  • 在Windows Server 2016 v1607上运行IIS v10.0.14393.0 *
    背景(对于那些感兴趣的人):www.EXAMPLE.com托管在一个服务器上,该服务器 * 不 * 允许访问者使用caniocal域;他们必须确保他们有WWW之前的网址。我没有任何能力改变这一点。

我的解决方法是在我控制的服务器上配置URL重写规则,这样,如果有人尝试访问EXAMPLE.com,他们仍然会到达他们正在查找的站点。无论最终用户是通过HTTP还是HTTPS连接,EXAMPLE.com到www.EXAMPLE.com的重定向都应该工作,因此我打算使用Let 's Encrypt生成TLS证书。遗憾的是,该操作失败,因为重写规则成功重定向到其他服务器,ACME验证失败。

htrmnn0y

htrmnn0y1#

直到我使用服务器管理器在“Web服务器(IIS)”〉“Web服务器”〉“运行状况和诊断”下安装了“跟踪”,该规则才继续正常运行。
这应该修复它吗?不知道。对我来说似乎不应该。但我不能否认它起作用了。谢谢Jalpa Panchal让我走上了正确的道路。

相关问题