重写不起作用的规则

时间:2012-01-06 06:50:23

标签: apache mod-rewrite

我有以下动态网址:http://www.lakaweb.com/dev/cserv/index.php?a=list&car=C5&year=2012&engine=1.8-HDi

我在其中重写为http://www.lakaweb.com/dev/cserv/list/C5/2012/1.8-HDi

with:

RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4 [L]

现在,当我想在最后添加另一个字段时,为什么这个重写规则不起作用:

RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

1 个答案:

答案 0 :(得分:0)

这是因为([^/\.]+)匹配'。'在1.8-HDi中作为其中一个片段的结尾。规则应该是:

RewriteRule ^dev/cserv/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([0-9]+)/?$ /dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4&service=$5 [L]

经过测试HERE