2011-05-26 79 views
3

我已經閱讀了主題,但仍然無法解決問題,我知道我的問題,但是想知道是否可以指引我朝着正確的方向發展。使用查詢字符串和問號IIS進行IIS重寫IIS 7

我已經建立了規則:

www.mydomain.com/productlist.asp?CategoryID=2 

改寫爲

www.mydomain.com/homeware/cushions 

  <rule name="cushions"> 
       <match url="^homeware/cushions" /> 
       <action type="Rewrite" url="productlist.asp?CategoryID=2" /> 
      </rule> 

OK,現在我的問題是結果的分頁,所以看起來,當用戶進入到下一個頁面的原始域,如:

www.mydomain.com/productlist.asp?CategoryID=2&Page=2 

這是我遇到的問題 - 我想這成爲:

www.mydomain.com/homeware/cushions?page=2 

,並持續了多少頁 只是無法得到它的工作 - 我知道我需要使用的查詢字符串,但真正地奮鬥。請求專業知識,感謝您的任何幫助

回答

1

要捕獲查詢字符串,您需要使用條件,因爲匹配URL不包括它。 所以,你可以做到這一點與如下規則:

<rule name="cushions" stopProcessing="true"> 
<match url="^homeware/cushions$" /> 
<conditions> 
    <add input="{QUERY_STRING}" pattern="page=(\d+)" /> 
</conditions> 
<action type="Rewrite" url="productlist.asp?CategoryID=2&amp;page={C:1}" appendQueryString="false" /> 

0

只需添加appendQueryString行動會自動追加查詢字符串=「真」。

<rewrite> 
     <rules> 
      <rule name="test"> 
       <match url="^homeware/cushions" /> 
       <action type="Rewrite" url="/test/test.cfm?category=5" appendQueryString="true" /> 
       <conditions> 
       </conditions> 
      </rule> 
     </rules> 
    </rewrite> 

http://localhost:8081/homeware/cushions?page=2 您將URL變量收到頁面,價值2