2014-12-04 104 views
0

IIS 7在Windows Server 2008 R2 SP1IIS 7重定向从HTTP到HTTPS失败,符号在URL

我已经添加了以下规则来我的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;或%26? HTTPS重定向规则是否使用原始URL或新重写/编码的版本?

+0

尝试添加改写地图和到&和放置规则HTTPS重定向之前应用,但它并没有帮助。是否有可能重写和重定向的规则相同? – 2014-12-04 20:16:40

+0

我正在使用ASP.NET 4.5,并发现一些帖子说可以在这种情况下在URL中使用特殊字符,并禁用页面的validateRequest。如果有人想告诉我这是个不好的主意,我会离开这个问题。我不输出在查询字符串中传递的任何内容。 – 2014-12-04 22:02:57

回答

1

我在Windows Server 2012和IIS 8.5上遇到了类似的问题,并在文件“测试& Testing Again.pdf”中输入与下面相似的规则,以重定向到名为“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>