2016-10-03 160 views
0

我正在嘗試將請求從網站的子目錄重定向到其根目錄。我知道在IIS中有一個重寫規則選項,但我不知道如何匹配URL並重寫它。 另一個問題是,該網站有2個綁定,使用2個不同的主機名,其中一個與子目錄相同。我需要他們兩個重定向到子目錄的請求到網站的根目錄。IIS從子目錄重定向到根

這裏是可能的輸入和它們各自的期望輸出的列表:

http://host1/host2/abc --> http://host1/abc 
http://host1.domain.com/host2/abc --> http://host1.domain.com/abc 
http://host2/host2/abc --> http://host2/abc 
http://host2.domain.com/host2/abc --> http://host2.domain.com/abc 
http://anywebsitename/abc/host2/abc --> http://anywebsitename/abc/host2/abc 

注:

  • 'ABC' 可以是任意字符串(包括空字符串)。
  • 'host2'是一個字面常量。
  • 「host2」子目錄是根網站的子目錄。

回答

0

這很簡單,但您需要將其應用於IIS中的Host1(URL重寫)。

<rule name="Rule to point host2-abc to host1-abc" stopProcessing="true"> 
    <match url="host2/abc" /> 
    <conditions logicalGrouping="MatchAll" rackAllCaptures="false" /> 
    <action type="Redirect" url="http://host1/abc" /> 
</rule> 

當這條規則被擊中,(你已經在Host1區域的IIS),所以當時只是尋找主機2/ABC和重定向回父。同樣的規則可以應用於你的所有例子。請標記此答案爲正確的,如果它解決了您的問題。謝謝!

+0

請注意'abc'可以是任何字符串,它不是一個常量。如果客戶端向http:// host1/host2/abc發送請求,我想將其重定向到http:// host1/abc,但是如果客戶端向http:// host1/host2/xyz發送請求,我想要將其重定向到http:// host1/xyz。 此外,包含rackallcaptures屬性(無法識別的屬性'rackAllCaptures')時,我得到一個500.52響應。 – ovidiufelixb

+0

我改正它爲'trackallcaptures'。 – ovidiufelixb