2012-07-03 29 views
0

我可以這樣說:?a=1&b=r%26d到aspx頁面就好了。第二個參數中的&編碼爲%26,因爲&被保留爲分隔符。&符友好的url無法重寫模塊

我在2008 R2上爲IIS7.5下載並安裝了URL Rewrite Module 2.0

我寫了一個簡單的規則:^([^/]+)/([^/]+)/?$匹配並重寫url:Default.aspx?a={R:1}&b={R:2}

,所以像1/a b迎刃而解到?a=1&b=a b,但類似1/a%26b1/a&b只摸出?a=1&b=a似乎一切都被切斷的是26%或&在運行時之後。但是,在服務器管理器中,我可以測試重寫,並且在GUI中的測試工具中沒有任何內容被截斷。

不知道該怎麼做,我所做的一切似乎都很簡單。所以要清楚,我怎麼能有一個友好的URL,其中有一個和號(或者如果必須的話,%26),並讓URL Rewrite 2.0模塊傳遞完整的參數?

回答

1

花了一段時間,但我找到了答案。 URL在被傳遞之前被解碼,所以創建了一個額外的變量。

無論如何,解決方案其實很簡單。原來所有我需要做的是調整重寫URL規則如下:

Default.aspx?a={UrlEncode{R:1}}&b={R:2}

的以UrlEncode功能將編碼{R:1}正確。

+0

它看起來像上面的表達式中UrlEncode後面的冒號。否則,效果很好。 –