我正在尝试设置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验证失败。
1条答案
按热度按时间htrmnn0y1#
直到我使用服务器管理器在“Web服务器(IIS)”〉“Web服务器”〉“运行状况和诊断”下安装了“跟踪”,该规则才继续正常运行。
这应该修复它吗?不知道。对我来说似乎不应该。但我不能否认它起作用了。谢谢Jalpa Panchal让我走上了正确的道路。