2012-03-07 131 views
0

我一直在關注以下IIS資源文章的步驟,以便使用模式捕獲源URL並基於下面的正則表達式。使用重寫模塊IIS7重定向

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module

源(OLD)URL:http://xx.xx.xxx.xx/term/product/term-term/category/example-123/58276 圖案:HTTP://xx.xx.xxx.xx/term/([AZ] +)/([AZ-] +)/([在IIS7中測試源URL的模式可以正常工作。目的地URL如下需要維持IP隨後/產品,其是R:1和/ 582276,其是R:5

連結網址:http://xx.xx.xxx.xx/ {R:1}/{R:5} 因此實際目的地(NEW)URL是http://xx.xx.xxx.xx/product/58276

但是上述使用的瀏覽器,而是得到一個惱人的404

我的web.config文件時不工作看起來像

`

 <rules> 

      <rule name="PatternRedirect" stopProcessing="true"> 

       <match url="http://xx.xx.xxx.xx/term/([a-z]+)/([a-z-]+)/([a-z]+)/([0-9a-z-]+)/([0-9]+)" /> 

       <action type="Redirect" url="http://xx.xx.xxx.xx/{R:1}/{R:5}" /> 

      </rule> 

     </rules> 

    </rewrite> 

    <httpRedirect enabled="true" destination="" exactDestination="true" httpResponseStatus="Permanent" /> 

`

任何想法?

由於

回答

1

用於模式匹配的輸入值是除領先/(正斜槓)的URL的路徑部分。匹配元素的url屬性必須以「術語」啓動:

<match url="term/([a-z]+)/([a-z-]+)/([a-z]+)/([0-9a-z-]+)/([0-9]+)" /> 

如果你想確保規則僅適用於xx.xx.xxx.xx主機的請求,加入條件:

<conditions logicalGrouping="MatchAll"> 
    <add input="{HTTP_HOST}" pattern="^xx.xx.xxx.xx$" /> 
</conditions> 
+0

真的很感激。這工作完美。 – user1171048 2012-03-08 11:19:43