2011-08-18 150 views
0

這是我的規則在web.config中設置:URL重寫問題

<rule name="RedirectPopups" stopProcessing="true"> 
       <match url="^webforms/visitor/popup/*" /> 
       <conditions> 
       <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" /> 
       <add input="{QUERY_STRING}" pattern="^([^=&amp;]+)=([^=&amp;]+)$" /> 
       </conditions> 
       <action type="Redirect" url="jwelery/INEEDTHEPAGEVARIABLEHERE/{C:1}/{C:2}" appendQueryString="false" redirectType="Permanent" /> 
      </rule> 

基本上我有我的web表單的彈出窗口\訪問者\彈出。我想寫一個規則,當在這個彈出目錄中請求任何頁面時。它被重定向到一些自定義網址。

例如,

如果用戶請求webforms/visitor/popup/HelloWorld.aspx?a=1

他應該被重定向到jwelery/HelloWorld/a/1

我只是需要什麼,我應該在重定向行動「INEEDTHEPAGEVARIABLEHERE」寫的解決方案。有什麼特殊的變量可以使用嗎?我使用的IIS7

感謝。

回答

2

你爲什麼不使用

<match url="^webforms/visitor/popup/([a-zA-Z0-9]+).aspx\?([a-zA-Z0-9]+)=([a-zA-Z0-9]+)$" /> 
<action type="Rewrite" url="jwelery/{R:1}/{R:2}/{R:3}" /> 

+0

哇,這很好地工作!謝謝。但是,你能告訴我是什麼樣的區別{R:1}和{C:1},究竟是什麼人?任何鏈接或者如果你能解釋的話我也會很感激。 – TCM

+0

{R:N}是反向引用,以排除模式,{C:N}爲調節模式。您可以使用{C:1}正確回覆您的QueryString模式。一個很好的概述可以在這裏找到:http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/ – Olaf

+0

謝謝奧拉夫。你已經清除了幾個月來我所懷疑的一個疑問。 – TCM