我正在使用Url Rewriter在我的网络应用中创建用户友好的网址并设置以下规则
<rewrite url="/(?!Default.aspx).+" to="/letterchain.aspx?ppc=$1"/>
如何替换$ 1以使其成为URL的最后一部分?
以下
www.mywebapp.com/hello
会转换为
/letterchain.aspx?ppc=hello
我已阅读文档,但找不到任何内容。
答案 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)(。+)”