2013-12-10 70 views
1

使用Url重寫,我試圖將/ foo_bar/*重定向到/ foo/*。我試過這個:使用IIS url重寫重定向文件夾時的問題

<rule name="Redirect foo_bar to foo" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{HTTP_URL}" pattern="^/foo_bar/(.*)" /> 
    </conditions> 
    <action type="Redirect" url="/foo/{R:1}" /> 
</rule> 

但是,這只是重定向到/ foo/foo_bar/*。我哪裏錯了?

回答

1

問題在於匹配。我認爲你甚至不需要這樣的條件。只需嘗試以下操作:

<rule name="Redirect foo_bar to foo" stopProcessing="true"> 
    <match url=".*/foo_bar/(.*)" /> 
    <action type="Redirect" url="/foo/{R:1}" /> 
</rule> 
+0

非常好,謝謝!任何想法,爲什麼我不能以我嘗試過的方式匹配? – Jonathan

+0

問題是URL的分裂發生在比賽中,而不是在條件中。當你拆分整個URL時,{R:1}變量將包含整個URL。您可能想嘗試使用gui進行URL重寫。你可以測試輸入... – malkassem