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

Redirect IIS 7从HTTP重定向到HTTPS失败,URL中带有符号AND,redirect,iis,iis-7,web-config,rewrite,Redirect,Iis,Iis 7,Web Config,Rewrite,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"

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还是新重写/编码的版本?

我在Windows Server 2012 IIS 8.5上遇到了类似的问题,并为文件“Testing&Testing reach.pdf”加入了类似于以下的规则,以重定向到名为“yourdomain.com/newPdfFileToDisplay.pdf”的新域/文件



尝试为&to&;添加重写映射;并在HTTPS重定向之前放置一个应用该规则的规则,但没有帮助。是否可以在同一规则中重写和重定向?我正在使用ASP.NET 4.5,发现一些帖子说,在这种情况下允许URL中使用特殊字符并禁用页面的validateRequest是可以的。我把这个问题留着,以防有人告诉我这是个坏主意。我没有输出在querystring中传递的任何内容。
 <rule name="Redirect pdf File">
    <match url="Testing ([&amp;]) Testing Again.pdf" />
    <action type="Rewrite" url="http://yourdomain.com/newPdfFileToDisplay.pdf" />
</rule>