【发布时间】:2014-12-04 18:09:47
【问题描述】:
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; 或 %26? HTTPS 重定向规则是使用原始 URL 还是新重写/编码的版本?
【问题讨论】:
-
尝试将 & 的重写映射添加到 &并在 HTTPS 重定向之前放置一个规则来应用它,但它没有帮助。是否可以在同一个规则中重写和重定向?
-
我正在使用 ASP.NET 4.5,发现一些帖子说在这种情况下允许在 URL 中使用特殊字符并禁用页面的 validateRequest 是可以的。如果有人想告诉我这是一个坏主意,我会留下这个问题。我没有输出在查询字符串中传递的任何内容。
标签: redirect iis iis-7 web-config rewrite