0

我正在使用 Url Rewriter 在我的 Web 应用程序中创建用户友好的 URL,并设置了以下规则

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

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

使以下

www.mywebapp.com/hello

将转变为

/letterchain.aspx?ppc=你好

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

4

2 回答 2

1

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

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

我不确定,但我认为由于 (?! ) “如果后缀不存在则匹配”查询这不计为编号捕获组 $1 所以这应该有效:

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

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

<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/>
于 2010-12-04T00:58:44.453 回答
0

请注意,如果您正在为 IIS 7+ 进行开发,http ://www.iis.net/download/urlrewrite/是 Microsoft 的一个模块,它执行更快的重写且占用空间更少。

BTW,你的正则表达式有一个小问题,你需要对点字符进行转义,即“/(?!Default.aspx)(.+)”

于 2010-12-06T04:20:31.843 回答