IIS 7 从 HTTP 重定向到 HTTPS 失败,URL 中带有 & 符号

IIS 7 从 HTTP 重定向到 HTTPS 失败,URL 中带有 & 符号

Windows Server 2008 R2 SP1 上的 IIS 7

我已将以下规则添加到我的 web.config 中,以将所有传入请求重定向到 HTTPS

<rule name="HTTP to HTTPS redirect" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>

当 URL 或文件名中存在与号 (&) 时,它会失败。我查看了一些提供的解决方案,但不想通过注册表允许特殊字符。有没有办法在重定向规则之前执行重写以将与号编码为 & 或 %26?HTTPS 重定向规则使用原始 URL 还是新重写/编码的版本?

答案1

您需要使用 [NE] 参数

<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" [NE] />

相关内容