2010-04-07 3 views
3

Est-il possible, à l'aide de regex, d'analyser la chaîne de requête et de créer une URL sympa qui peut être traduite vers l'URL laide pour une application héritée? Par exemple, disons que nous ne sommes pas certains des paramètres de chaîne de requête qui feront partie d'une URL. Voici un exemple:Réécriture ISAPI (à l'aide d'Helicon sur IIS et ASP.NET) et chaîne de requête dynamique append?

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

Nous voulons réécrire l'URL comme

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

En même temps, nous avons besoin du filtre pour permettre l'application de la voir comme l'ancienne URL à traiter correctement. Encore une fois, nous ne savons pas quelle combinaison de paramètres peut être utilisée.

Est-ce que cela peut être fait seulement avec le filtre?

Répondre

0

En tant que official forums said, vous pouvez utiliser RewriteCompatibility2 on dans Helicon 3.0, vous pouvez donc utiliser une directive LP (bouclage avec le remplacement).

J'utilise cette regex pour analyser QueryString (il fait deux groupes: name avec tous les noms de paramètres et value avec toutes les valeurs de paramètres)

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

Basé sur le sujet du forum mentionné, je pense que vous devriez essayer quelque chose comme ceci:

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