2013-06-27 68 views
0

我試圖讓整天在IIS URL重寫規則,但沒有我的規則正在..非法入境重寫規則追加值查詢字符串

我想要重寫URL爲這些類型的轉變網址的

http://localhost:2811/Search/S%2fqIMmjstZg%3d/VehicleDetails.aspxhttp://localhost:2811/Search/VehicleDetails.aspx?mid=S%2fqIMmjstZg%3d

http://localhost:2811/Search/yYut%2f%2fBrHa8%3d/VehicleDetails.aspxhttp://localhost:2811/Search/VehicleDetails.aspx?mid=yYut%2f%2fBrHa8%3d

http://localhost:2811/Search/nNLApdJeWJI%3d/VehicleDetails.aspxhttp://localhost:2811/Search/VehicleDetails.aspx?mid=nNLApdJeWJI%3d

與以下重寫規則

<rewrite> 
     <rules> 
      <rule name="QueryString"> 
       <match url="^Search/([_0-9a-z-%=\+\$]*)$/VehicleDetails.aspx" /> 
       <action type="Rewrite" url="Search/VehicleDetails.aspx?mid={R:1}" appendQueryString="true" /> 
      </rule> 
     </rules> 
    </rewrite> 

但它不是working..Help請!

回答

3

您有錯誤的patten。我建議你以下幾點:

/Search/([^/]*)/VehicleDetails.aspx$ 

現在解釋(從末)

  1. /VehicleDetails.aspx$ - 靜態文本,這是對串
  2. 結束([^ /) - 除了一切「/」
  3. /搜索/ - 靜態文本(你coluld嘗試^添加在乞討,但要小心/後)
  4. 您可以在IIS中的用戶界面測試你的表達:enter image description here
+1

感謝您的解決方案,它工作正常,但我對這個主題有更多的問題..我可以隱藏querystring在url中並通過request.querystring [「mid」]方法獲取querystring的值方法??上例中的示例可以從'http:// localhost:2811/Search/VehicleDetails.aspx?mid = S%2fqIMmjstZg%3d'中隱藏'mid = S%2fqIMmjstZg%3d',並通過request.querystring [ 「mid」] ???在IIS重寫規則中可以使用'appendQueryString =「false」'選項幫助我解決這個問題? –

+1

爲什麼要隱藏查詢字符串。如果您使用的是反向代理,則沒有人會看到它。 –

+1

它的我的要求,所以有可能通過在上面的解決方案進行某些更改隱藏IIS規則???我沒有使用反向代理... –