Я хотел бы создать общее правило перезаписи 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/param
Обратите внимание на косую черту (/), когда я хочу сопоставить папку,в противном случае это параметр.
Я установил следующее правило перезаписи:
^(?:([^/]+)/)?(?:([^/]+)/)?([^/]+)?$
У него есть три соответствующих условия: {R: 1}, {R: 2} и {R: 3}.Однако, когда я ввожу следующий тестовый URL:
folder1 / param
, я получаю следующий ответ:
{R: 1} isпусто
{R: 2} = папка1
{R: 3} = параметр
Я подозревал следующий ответ:
{R: 1} = папка1
{R: 2} пуст
{R: 3} = param
Т.е. я хочу, чтобы folder1 был сопоставлен с первой частью шаблона перезаписи.
Я хотел бы сопоставить правило перезаписи с:
/controller.php?folder1={R:1}&folder2={R:2}¶m={R:3}
Чего не хватает, чтобы сопоставление было жадным, то есть соответствовало первому возможному предложению?