RewriteRule /news-(\d+)-((%[a-fA-F0-9]{2})+)-((%[a-fA-F0-9]{2})+) /\?pppid=$1&add1=$2&add2=$3 [N,I]这样写取不到$3的值啊(\d+)  =$1((%[a-fA-F0-9]{2})+)  这个匹配的是url中文字符加密urlencode 函数((%[a-fA-F0-9]{2})+)这个错误   这个((%[a-fA-F0-9]{2})+)里面的“((”双括号 导致了$2跟$3都在里面 就乱了..这样写取不到$3的值啊((%[a-fA-F0-9]{2})+)  这个正则怎么写啊???例如:news-362-%B1%B1%BE%A9%CA%D0-%B3%AF%D1%F4     对应到pppid=352&add1=北京市&add2=朝阳

解决方案 »

  1.   

    RewriteRule /city/fangwu/news-(\d+)-([%a-fA-F0-9]{3}+)-([%a-fA-F0-9]{3}+) /city/fangwu/\?pppid=$1&add1=$2&add2=$3 [N,I]news-362-%B1%B1%BE%A9%CA%D0-%B3%AF%D1%F4 对应到pppid=352&add1=北京市&add2=朝阳
    这个也不行啊 (.*)倒是可以  但是(.*) 会匹配“-”号啊  我是以“-”分开的得到的 $2就吧$3的也匹配了  就成了北京市-朝阳了有没有人会啊??
      

  2.   

    我用正则表达式测试器测试了一下这个正则:
    pppid=(\d+)&add1=((%\w{2}){1,})&add2=((%\w{2}){1,})结果表示。索引1,2,4分别代表等号后面的值
      

  3.   

    news-(\d+)-([^-]+)-([^-]+)
    试试这样写呢
    rewrite的时候实际已经是解码后的字符串了