index.php?a=
把这一截用正则表达式替换掉不就得了。

解决方案 »

  1.   

    RewriteRule ^/([_a-zA-Z\u4e00-\u9fa5]+)$ /index.php?a=$1 [L]
      

  2.   

    RewriteRule ^([_a-zA-Z\u4e00-\u9fa5]+)$ /index.php?a=$1
      

  3.   

    RewriteRule ^([_a-zA-Z\u4e00-\u9fa5]+)$ /index.php?a=$1 [R,NE]
      

  4.   


    谢谢,  不过你这个是直接转向目标地址了解, URL变了.
      

  5.   

    RewriteRule ^((%[0-9a-fA-F]{2}|[_a-zA-Z])+)$ /index.php?a=$1 [L]这个正则我用Regular Expression Tester检查是OK的,但是apache 2.2里面测试,还是不能支持中文。我觉得不能支持最可能的原因应该是url的中文部分被urlencode了,但我对Rewrite引擎所用的正则语法不是很了解,只能提供参考下。
    另外,\uxxxx这样的写法我的apache 2.2上不支持,直接在httpd.conf的语法检查阶段就compile error了。
      

  6.   

    谢谢大家, 检查出原因了 原来是程序内部有冲突  导致rewrite失效.稍后结帖.