我正在使用 Url Rewriter 在我的 Web 应用程序中创建用户友好的 URL,并设置了以下规则
<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/>
如何替换 $1 使其成为 URL 的最后一部分?
使以下
www.mywebapp.com/hello
将转变为
/letterchain.aspx?ppc=你好
我已经阅读了文档,但找不到任何东西。
我正在使用 Url Rewriter 在我的 Web 应用程序中创建用户友好的 URL,并设置了以下规则
<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/>
如何替换 $1 使其成为 URL 的最后一部分?
使以下
www.mywebapp.com/hello
将转变为
/letterchain.aspx?ppc=你好
我已经阅读了文档,但找不到任何东西。
组部分中的 $1to
指的是定义的第一个捕获组(例如括号中的部分)。
您真正想要注入 $1 的部分是 .+ ,它不在捕获组中。
我不确定,但我认为由于 (?! ) “如果后缀不存在则匹配”查询这不计为编号捕获组 $1 所以这应该有效:
<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$1"/>
如果没有,那么只需尝试将第二个捕获组插入到您的 to 字符串中:
<rewrite url="/(?!Default.aspx)(.+)" to="/letterchain.aspx?ppc=$2"/>
请注意,如果您正在为 IIS 7+ 进行开发,http ://www.iis.net/download/urlrewrite/是 Microsoft 的一个模块,它执行更快的重写且占用空间更少。
BTW,你的正则表达式有一个小问题,你需要对点字符进行转义,即“/(?!Default.aspx)(.+)”