Строковые функции в модуле перезаписи URL IIS - PullRequest
2 голосов
/ 11 июня 2010

Модуль IIS URL Rewrite поставляется с 3 встроенными функциями :

* ToLower - returns the input string converted to lower case.
* UrlEncode - returns the input string converted to URL-encoded format. This function can be used if the substitution URL in rewrite rule contains special characters (for example non-ASCII or URI-unsafe characters).
* UrlDecode - decodes the URL-encoded input string. This function can be used to decode a condition input before matching it against a pattern.

Функции могут быть вызваны с использованием следующего синтаксиса: {function_name: any_string}

Вопрос: можно ли расширить этот список, введя функцию Replace , которая доступна для изменения значений в действии или условии правила перезаписи?

Другой способ сформулировать вопрос : есть ли способ выполнить глобальную замену URL-адреса, поступающего с использованием этого модуля?

Кажется, что вы ограничены использованием регулярных выражений и обратных ссылок для построения строк - т.е. нет механизма поиска / замены для замены каждого экземпляра X на Y в {REQUEST_URI}, без , зная, сколько существует экземпляров.

Я быстро взглянул на расширяемость представил в 2.0 RTW и не вижу никаких «легких» способов представить это.

1 Ответ

2 голосов
/ 12 июня 2010

Похоже, вам нужно реализовать собственного провайдера, как показано здесь:
http://learn.iis.net/page.aspx/804/developing-a-custom-rewrite-provider-for-url-rewrite-module/

...