我想在 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 时:
文件夹 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}
我缺少什么让匹配变得贪婪,即匹配第一个可能的子句?