我有一些需要重定向的遗留URL,其中包含一个tilde (~)作为URL的一部分。我在让IIS重写规则工作时遇到了一些问题。
旧网址:http://www.example.com/~/media/something/whatever.pdf
需要重定向到: /whatever
我制定了以下规则:
Web.Config
<rewrite>
<rewriteMaps configSource="RewriteMaps.config" />
<rules configSource="RewriteRules.config" />
</rewrite>RewriteMaps.config
<rewriteMaps>
<rewriteMap name="Legacy URLS">
<!--DOES NOT WORK-->
<add key="~/media/something/whatever.pdf" value="/whatever" />
<!--WORKS-->
<add key="/testing123" value="/whatever" />
</rewriteMap>
</rewriteMaps>RewriteRules.config
<rules>
<rule name="Redirect rule1 for Legacy URLS" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{Legacy URLS:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
</rule>
</rules>发布于 2016-02-06 04:01:56
我在想,您必须要转义倾斜体,也许是HTML编码:~
( http://www.ascii.cl/htmlcodes.htm )或URL编码。
否则,它必须是不同的解释~,一个la应用程序主页。
https://stackoverflow.com/questions/35236259
复制相似问题