Я хотел бы создать общее правило перезаписи URL-адресов в IIS 7.5 (в Windows Web Server 2008 R2).
Я хотел бы сопоставить следующие URL-адреса:
www.mysite.com/param
www.mysite.com/folder1/
www.mysite.com/folder1/param
www.mysite.com/folder1/folder2/
www.mysite. com/folder1/folder2/параметр
Обратите внимание на завершающую косую черту (/), когда я хочу сопоставить папку, иначе это параметр.
Я установил следующее правило перезаписи:
^(?:([^/]+)/)?(?:([^/]+)/)?([^/]+)?$
Он имеет три совпадающих предложения: {R:1}, {R:2} и {R:3}. Однако, когда я ввожу следующий тестовый URL-адрес:
папка1/параметр
Я получаю следующий ответ:
{R:1} пусто
{R:2} = папка1
{R:3} = параметр
Я подозревал следующий ответ:
{R:1} = папка1
{R:2} пуста
{R:3} = параметр
т.е. Я хочу, чтобы folder1 была сопоставлена с первой частью шаблона перезаписи.
Я хотел бы сопоставить правило перезаписи с:
/controller.php?folder1={R:1}&folder2={R:2}¶m={R:3}
Чего мне не хватает, чтобы совпадение было жадным, то есть соответствовало первому возможному предложению?