使用Url Rewriter将URL的最后一部分变为变量

时间:2010-12-03 19:10:29

标签: url-rewriting urlrewriter.net urlvariables

我正在使用Url Rewriter在我的网络应用中创建用户友好的网址并设置以下规则

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

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

以下

  

www.mywebapp.com/hello

会转换为

  

/letterchain.aspx?ppc=hello

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

2 个答案:

答案 0 :(得分:1)

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

您实际想要注入$ 1的部分是。+,它不在捕获组中。

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

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

如果没有,那么只需尝试将第二个捕获组插入到字符串中:

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

答案 1 :(得分:0)

请注意,如果您正在为IIS 7 +开发http://www.iis.net/download/urlrewrite/,那么Microsoft的一个模块可以更快地执行更快的重写。

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