2012-06-12 220 views
1

我想使用URL重寫模塊在IIS 7中設置規範默認URL。我認爲我誤解了如何使用「匹配網址」字段。以下似乎並沒有做任何事情:IIS 7 URL重寫匹配URL

<rewrite> 
     <rules> 
      <rule name="EnforceDefaultPage"> 
       <match url="^http://(?:www\.)?mydomain\.com(?:/)?(?:blog\.aspx)?$" /> 
       <action type="Redirect" url="http://www.mydomain.com/blog" appendQueryString="false" /> 
      </rule> 
     </rules> 
    </rewrite> 

我在很多人都加入利用HTTP_HOST變量的條件例子注意到......但如何這涉及到匹配的網址?似乎我應該能夠省略任何條件,因爲我的正則表達式正是我想要的。

回答

5

啊,我終於明白了。顯然URL的'多'可用於匹配取決於目錄層次結構中web.config的位置。因爲我將代碼放在web根目錄的web.config中,所以它只能匹配域名後面的任何內容(即它可以匹配'012.com/2'中的所有內容'http://www.blog.com/')。

我在這裏找到了答案:http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

「需要注意的是傳遞給分佈規律輸入URL字符串總是相對於該規則被定義Web.config文件的位置。例如,如果請求爲http://www.mysite.com/content/default.aspx?tabid=2&subtabid=3,並且在/ content目錄中定義了重寫規則,則該規則將此URL字符串default.aspx作爲輸入。「