2017-07-28 17 views
1

我想重定向我旧网址http://staging.TempSite.com/about-us/Institute-+target/%20URL,空间和 “+” 符号改写在web.config中

新的URL “” http://staging.TempSite.com/about-us/news-events “”

<rule name="rule59" stopProcessing="true"> 
<match url="(.*)" /> 
<conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
    <add input="{HTTP_HOST}{REQUEST_URI}" pattern="staging.TempSite.com/about-us/Institute-\+target/\s*" /> 
</conditions> 
<action type="Redirect" url="./about-us/news-events" /> 

我也尝试了followoing模式。

pattern="staging.TempSite.com/about-us/Institute-\+target/\s*$" 
pattern="staging.TempSite.com/about-us/Institute-\+target/ $" 
+0

尝试用''about-us/Institute - \ + target/\ s * $”/ >'然后'' –

回答

0

@WiktorStribiżew评论几乎是正确的,但它不会工作。如果您的网址中有+,则需要在您的配置中启用allowDoubleEscaping。配置示例:

<system.webServer> 
    <security> 
     <requestFiltering allowDoubleEscaping="true"/> 
    </security> 
    <rewrite> 
     <rules> 
      <rule name="rule59" stopProcessing="true"> 
       <match url="^about-us/Institute\-\+target/\s*$" /> 
       <action type="Redirect" url="/about-us/news-events" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
+0

+问题解决了..但是如果我厌倦了http://staging.TempSite .com/about-us/Institute- + target /%20然后无法正常工作...只能在http://staging.TempSite.com/about-us/Institute-+target/上工作,如果我从我的网址中移除%20 。 – Juhi

+0

我再次测试它,它为我工作。也许你有其他的重写规则阻止执行。你能清除你的浏览器缓存吗?因为通常浏览器缓存301重定向 –

+0

是的,我尝试清除缓存和隐身模式后。而且我也尝试删除其他规则,但%20行结束的URL不适合我。 – Juhi