Tilde IIS URL重写问题(〜)

问题描述:

我有一些遗留的URL,我需要重定向,有一个代字符(〜)作为URL的一部分。我有一些问题让IIS重写规则正常工作。Tilde IIS URL重写问题(〜)

旧的URL: http://www.example.com/~/media/something/whatever.pdf

需要它重定向到: /不管

我已经制定了以下规则:

的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> 
+1

代字符串是实际URL的一部分(例如,您的服务器中实际上有一个'/〜'文件夹)或正在ASP.Net(应用程序)上下文中使用(指的是“应用程序根目录”) ? – EdSF

+0

不幸的是,由于我们无法控制的原因,它是URL的一部分。 –

我想你必须要撤消代字号,也许是HTML编码: &#126;

http://www.ascii.cl/htmlcodes.htm)或URL En码。

否则,它必须解释〜不同的,一个应用程序的家。