2011-12-08 46 views
5

我希望規範一個域名,從bar.example.com到www.example.com(以及任何不是www.example.com的域名)。網站運行IIS7。IIS7 URL重寫 - 我可以在重定向規則中使用stopProcessing =「false」嗎?

的問題是,某些URL是形式http://bar.example.com/asp/oldpage.asp?query=awesome的,並有特定的URL重寫規則已經到位重定向到http://www.example.com/newpage/awesome

我想寫映入其他規則的規則。

這裏的漁獲:我有一個規則很多,並希望把在站點的根目錄這條規則,但有額外的重寫/重定向在子文件夾的規則,所以我想推遲從301直到所有規則已經運行。

這可能嗎?重寫有一個延遲選項(stopProcessing =「false」),但這似乎不是重定向的選項。

我是SOL嗎?

回答

6

不幸的是,我可以確認延遲處理(stopProcessing="false")僅適用於重寫操作,並且被重定向操作忽略。

根據你的問題,如果匹配的數量很小 - 但事實並非如此 - 我會建議你使用正則表達式替換它們。例如:

First match: ^first/a$ 
Second match: ^second/b$ 

Combined match: ^(first/a|second/b)$ 

通往喜歡的東西:

<rule name="MyCombinedRule"> 
    <match url="^(first/a|second/b)$" /> 
    <action type="Redirect" url="http://www.example.com/third/c" /> 
</rule> 
+0

作爲附加的註釋,子文件夾*能*清除從父目錄的規則,但這意味着我需要的規則複製到每個子目錄。 – Broam