一个郁闷的mod_rewrite问题

一个郁闷的mod_rewrite问题

apache版本为2.2.6

之前写了一个简单的规则,如下:

RewriteEngine   on
RewriteBase     /

#规则开始
RewriteRule ^(.*\.jpg|.*\.gif|.*\.png|.*\.css|.*\.js|.*\.html)$ $1
RewriteRule ^([a-zA-Z0-9_]+)-(.+)$ ?module=$1&$2





但是对于这样的地址,却得到403:
http://www.abc.com/gateway-method=user.sayHello&parms=%5B%22linux%22%5D

其中%5B%22linux%22%5D是       ["linux"]      的url_encode编码。


请大家帮忙看看,这两条规则有问题没,谢谢!

但是像

http://www.abc.com/gateway-method=user.sayHello&parms=%5Blinux%5D

却没有问题

都睡觉了,刚抓到错误日志:

[Sun Jan 04 22:29:31 2009] [error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters: Cannot map GET /gateway-method=user.sayHello&parms=%5B%22oklqh%22%5D HTTP/1.1 to file