例如:在浏览器地址栏输入
http://forum.csdn.net/PointForum/Forum/PostTopic.aspx?forumID=949829-c8e9-4552-9be4-b01061443744
运行后就自动转成
http://forum.csdn.net/PointForum/Forum/PostTopic.aspx?forumID=9498%D6%D029-c8e9-4552-9be4-b01061443744问下用.htaccess能做到吗?

解决方案 »

  1.   

    具体一点,就是将http://topic.csdn.net/u/20101230/15/f6aaf83b-哈哈0f-4呵呵c86-91fa-93da39cb30c6
    转换成http://topic.csdn.net/u/20101230/15/93da39cb30c6
      

  2.   

    可以呀, 不过这该是 Apache 而非 PHP 的呀, 况且 IE 之类的浏览器方就可以设置成自己转换吧 ... 貌似您这是要 GB 编码的落后了点儿 ...
      

  3.   

    不是这样的,是我发给别的网站,别的网站回调地址是类似这样:http://topic.csdn.net/u/20101230/15/f6aaf83b-哈哈0f-4呵呵c86-91fa-93da39cb30c6
    这样我本地没解析出来,希望能解析成http://topic.csdn.net/u/20101230/15/?type=93da39cb30c6
      

  4.   

    之前匹配过了,现在就是有中文
    如:
    http://topic.csdn.net/u/f6aaf83b-0f-4c86-91fa-93da39cb30c6RewriteRule ^([\w-]+)$ /u/index\.php\?para=$1 [L]之后,http://topic.csdn.net/u/index.php?para=93da39cb30c6但现在有了中文http://topic.csdn.net/u/f6aaf83b-哈哈0f-4呵呵c86-91fa-93da39cb30c6
    匹配不出来了
      

  5.   

    我试了一下如下规则,可以匹配到如果用得上,目录你换一下即可RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^([\w\W]+)$ index\.php\?p=$1 [L]
      

  6.   

    大哥,首先谢谢你,还记得上次我也拿这个问你不?可能我没描述清楚,我一要的结果是将
    http://topic.csdn.net/u/f6aaf83b-0f-4c86-91fa-1245678
    转化成http://topic.csdn.net/u/index.php?para=1245678
    用RewriteRule ^([\w-]+)$ /u/index\.php\?para=$1 [L]就成功了
    现在有中文了http://topic.csdn.net/u/f6aaf83b-0f-4哈哈c86-91fa-1245678
    用这个RewriteRule ^([\w\W]+)$ index\.php\?p=$1 [L]获取的是全部,我要的仅仅是最后一个‘-’后面的参数
      

  7.   

    貌似那个 "[\w\W]" 与 "[\s\S]" 和 "[\d\D]" 同义吧 ...
      

  8.   

    你这是URLENCODE的方法,并不是.htaccess的事情,需要把编码后的中文再解码再进行正则匹配
      

  9.   

    如果确认是这种格式,且只要最后一个"-"后面的字符,如下即可RewriteRule ^.*-([\w]+)$ /index\.php\?p=$1 [L]