打开httpd.conf,把下面这行前的注释去掉 
LoadModule rewrite_module modules/mod_rewrite.so 
然后在最后加入以下两行: RewriteEngine on 
RewriteRule /go\?userid=(.*) /go\.php\?userid=$1 [N,I]重启apache。

解决方案 »

  1.   

    上面这位兄弟,谢谢你的指点,正则表达式我基本不懂,我就照你写的试了试,有最后那句重新规则的时候apache启动不了,还有,可不可以设定个规则就是凡是不带扩展名的都按php去处理,我上面那个就是个例子,我想达到的是所有这种情况包括子文件夹下的都适用,请问可以吗?谢谢拉,在线等
      

  2.   

    不好意思,写的时候都没有经过测试。
    照理来说,下面这个是可以的。
    RewriteRule /go\?userid=(.*)   /go\.php\?userid=$1 [N]
    因为下面这行可以:
    RewriteRule /news/(.*)\.html /go\.php\?userid=$1 [N]
    这个通过测试,即实现输入 网址/news/1.html时,自动返回 go.php?userid=1的内容。
    你说的是可以实现的,问题是如何写这个正则,我大概写了下,但不知道为什么通不过。RewriteRule /(([^/]/)*)([^/]+)\?([^/]+)=([^/]+) /$1$3\.php\?$4=$5 [N][^]表示非的意思,[^/]表示非/的任一字符, [^/]/就是一层目录。*表示出现0次或多次。
    ()是抓变量,按出现顺序依次为$1,$2,$3
    比如上面的这个例子:
    RewriteRule /news/(.*)\.html /go\.php\?userid=$1 [N]
    当输入 1.html时,匹配后“$1”的值就是 1