Regex вопрос с использованием модуля перезаписи URL IIS7 - PullRequest
0 голосов
/ 25 августа 2010

Я использую модуль перезаписи URL в IIS7 и использую шаблон правила дружественного для пользователя URL.

Я пытаюсь получить URL-адреса, такие как:

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

, чтобы переписать на

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

Используя шаблоны, он автоматически генерирует что-то вроде:

^SomethingEnd\.aspx$

для перенаправления на

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

и наоборот на

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

должно быть

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

Моя проблема в том, как мне сделать его динамичным?Хотя в моей строке запроса есть конечное количество параметров, я действительно не хочу создавать, например, если у меня есть 6 параметров, 6 отдельных правил перезаписи (и обратное применение).

Я пытался

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

, но это, похоже, не работает.

Любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

0 голосов
/ 25 августа 2010

Вы можете использовать split.


РЕДАКТИРОВАТЬ

В качестве примера, в javascript, вы можете использовать это:

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

И это возвращает массив:

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

Итак, вам нужен просто цикл для получения правильной информации.

...