Iis

使用 IIS url 重寫重定向文件夾時出現問題

  • December 10, 2013

使用 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,因此它應該可以工作。

引用自:https://serverfault.com/questions/560479