2010-08-25 3 views
0

J'utilise le module de réécriture d'URL dans IIS7 et en utilisant le modèle de règle d'URL conviviale.Question Regex utilisant le module de réécriture d'URL d'IIS7

Je suis en train d'obtenir des URL comme:

Something/param1/something/param2/something/param3/something/something2/ etc.etc. 

à Réécrire

SomethingEnd.aspx?param1=something&param2=something&param3=something/something2& etc.etc. 

En utilisant les modèles, il génère automatiquement quelque chose comme:

^SomethingEnd\.aspx$ 

de redirection

Something/{C:1}/{C:2}/{C:3}/{C:4}/{C:5}/{C:6} etc. 

et l'inverse pour être

^Something/([^/]+)/([^/]+)/?$ 

pour être

SomethingEnd.aspx?{R:1}={R:2} 

Mon problème est, comment puis-je le rendre dynamique? Bien qu'il y ait une quantité finie de params que j'ai dans ma chaîne de requête, je ne veux vraiment pas faire, par exemple, si j'ai 6 params, 6 règles de réécriture séparées (et l'inverse appliqué).

J'ai essayé

^Something/([^/]+)*/?$ 

mais cela ne semble pas fonctionner.

Toute aide serait grandement appréciée.

Merci!

Répondre

0

Vous pouvez utiliser split.


EDIT

À titre d'exemple, en javascript, vous pouvez utiliser ceci:

"Something/param1/something/param2/something/param3/something/something2/".split(/([^/]+)\/([^/]+)/) 

Et ce retourne un tableau:

["", "Something", "param1", "/", "something", "param2", "/", "something", "param3", "/", "something", "something2", "/"] 

Ainsi, vous besoin juste d'une boucle pour obtenir des informations correctes.

+0

Malheureusement, je ne peux pas utiliser split en utilisant le module de réécriture d'URL. Je souhaite que la plus grande partie de la réécriture d'URL soit conservée autant que possible sur le serveur. – MikiRei