string pattern = @"/([\w\W]*)/(.*)\.aspx";
string replace = @"/CommPages/$2.aspx?Item=$1";
分别匹配:
/abc/ads.aspx
/abc/info/ads.aspx
/abc/info/uuu/xxx.aspx
中的:
abc和ads.aspx
abc/info和ads.aspx
abc/info/uuu和xxx.aspx
谢谢。

解决方案 »

  1.   

    我想要的是通过:
    string pattern = @"/([\w\W]*)/(.*)\.aspx";
    匹配:
    string replace = @"/CommPages/$2.aspx?Item=$1";在/abc/下面只放有一个index.aspx文件。内容是:<%@ Page %>比如:
    访问/abc/下面的index.aspx,重定向到/CommPages/index.aspx
    而访问/abc/下的其它所有*.aspx,则重定向到/CommPages/下的对应*.aspx文件。1.访问/abc/index.aspx,能够正常重定向到/CommPages/index.aspx。
    2.访问/abc/index.aspx以外的*.aspx文件,在本机可以实现,而在服务器就出现,提示找不到/abc/xxx.aspx文件,即不能实现重定向。当然在/CommPages/下面,确定存在此文件:xxx.aspx。
      

  2.   

    最终的解决办法是:在/abc/下面放一个内容是<%@ Page %>的xxx.aspx文件就可以正常访问了,但是问题在于,如果我在/abc/不放内容为<%@ Page %>的xxx.aspx文件时,
    为什么在本机可以,在服务器上就不行了呢?
      

  3.   

    这样试下string pattern = @"/(.*?)/([^/]*?)\.aspx";
      

  4.   

    哦,才看到楼主的回复,url重写没做过,只是觉得楼主的正则最好不要那样写
      

  5.   

    /([\w\s].*)/(.*?)\.aspx
    最后,我是这样写的。
    行吗?
      

  6.   

    ([\w\s].*)
    这里既然用了.*,那么[\w\s]就多大实际意义了,虽然匹配的结果都基本上一样,不过最好还是用非贪婪模式吧