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

时间:2014-12-04 18:09:48

标签: 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" />
  </conditions>
  <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>

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

1 个答案:

答案 0 :(得分:1)

我在Windows Server 2012,IIS 8.5上遇到了类似的问题,并为此文件提供了类似于以下规则的规则&#34;测试&amp;再次测试.pdf&#34;重定向到名为&#34; yourdomain.com/newPdfFileToDisplay.pdf"

的新域/文件
 <rule name="Redirect pdf File">
    <match url="Testing ([&amp;]) Testing Again.pdf" />
    <action type="Rewrite" url="http://yourdomain.com/newPdfFileToDisplay.pdf" />
</rule>