Url rewriting 使用URL重写器将URL的最后一部分放入变量

Url rewriting 使用URL重写器将URL的最后一部分放入变量,url-rewriting,urlrewriter.net,urlvariables,Url Rewriting,Urlrewriter.net,Urlvariables,我正在使用Url重写器在我的web应用程序中创建用户友好的Url,并设置了以下规则 <rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/> 如何替换$1,使其成为URL的最后一部分 因此,以下 www.mywebapp.com/hello 将转变为 /letterchain.aspx?ppc=你好 我已经阅读了文档,但找不到任何内容。组的至部分中的$1指的是定义的第一个捕获组(如括号中的部分) 实际上

我正在使用Url重写器在我的web应用程序中创建用户友好的Url,并设置了以下规则

<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/>

如何替换$1,使其成为URL的最后一部分

因此,以下

www.mywebapp.com/hello

将转变为

/letterchain.aspx?ppc=你好


我已经阅读了文档,但找不到任何内容。

组的
部分中的$1指的是定义的第一个捕获组(如括号中的部分)

实际上,您希望注入$1的部分是不在捕获组中的。+

我不确定,但我认为由于(?!“如果后缀不存在,则匹配”查询,这不算作编号为$1的捕获组,因此应该可以:


如果没有,请尝试将第二个捕获组插入到to字符串中:

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/>

请注意,如果您正在为IIS 7+开发一个来自Microsoft的模块,它可以以较低的占用空间执行更快的重写


顺便说一句,您的正则表达式有一个小问题,您需要转义点字符,即“/(!Default.aspx)(.+)”

hmm它在Expresso(一个正则表达式开发工具)中工作。当你说ppc=”“时,你的意思是重写工作正常并将你发送到页面吗?我刚刚想到,我们创建了一个无限循环,因为/letterchain.aspx?ppc=匹配左手部分。尝试添加processing=“stop”作为属性。此外,如果您尝试将无扩展url与url重写相匹配,则需要使用iis7或为iis6()设置通配符映射。抱歉,您的建议确实有效。当我看到您的示例时,我认为它与我的示例相同-我没有发现括号周围的附加括号。+非常感谢
<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/>