Iis
使用 IIS url 重寫重定向文件夾時出現問題
使用 Url Rewrite,我正在嘗試將 /foo_bar/* 重定向到 /foo/*。我試過這個:
<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/*。我哪裡錯了?
首先,您指定一個規則來匹配所有請求 (.*),然後為特定 url 添加一個條件。
你應該在比賽中有你的限制標準:
<match url="^/foo_bar/(.*)" />
那麼你就不再需要這個條件了。您僅將條件用於不基於 URL 的附加條件。
其次,{R:1} 引用了比賽中的整個 url,所以如果你
/foo_bar/
在 url 中有 {R:1} 中的內容,這就解釋了為什麼它重定向到 /foo/foo_bar/。使用您的新匹配規則, {R:1} 包含 in 中的內容
(.*)
,而不是整個 Url,因此它應該可以工作。