2010-04-07 62 views
3

是否可以使用正則表達式來解析查詢字符串並構建一個可以轉換回醜陋URL以便在遺留應用程序上使用的好URL?例如,假設我們不確定哪些查詢字符串參數將成爲URL的一部分。這裏有一個例子:ISAPI重寫(在IIS和ASP.NET上使用Helicon)和動態查詢字符串append?

http://www.domain.com/thePage.aspx?Param1=1&Param2=23&Param7=22 

我們要重寫URL作爲

http://www.domain.com/Param1/1/Param2/23/Param7/22 

在我們需要的過濾器,以允許應用程序把它看成是舊的URL才能正確處理同時進行。再一次,我們不知道可以使用什麼樣的參數組合。

這隻能使用過濾器來完成嗎?

回答

0

由於official forums said,您可以在Helicon 3.0中使用RewriteCompatibility2 on,因此您可以使用LP指令(循環替換)。

我用這個正則表達式來解析查詢字符串(它使兩組:name所有參數名稱,並value所有參數值)

[\?&](?<name>[^&=]+)=(?<value>[^&=]+) 

基於提到的論壇主題,我想你應該嘗試像這個:

//for replacing '=' 
RewriteRule ^[\?&]([^&=]+)=([^&=]+)$ $1/$2 [LP,R=301,L] 
//for replacing '&' 
RewriteRule ^\?([^&]+)&([^&]+)$ $1/$2 [LP,R=301,L]