Apache 重写不符合';行不通

Apache 重写不符合';行不通,apache,mod-rewrite,Apache,Mod Rewrite,我有以下动态URL: 其中我重写了 与: RewriteRule^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$/dev/cserv/index.php?a=$1&car=$2&year=$3&engine=$4[L] 现在,当我想在末尾添加另一个字段时,为什么这个重写规则不起作用: RewriteRule ^dev/cserv/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/(.*)/?$ /dev/cserv/i

我有以下动态URL:

其中我重写了

与:

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.8-HDi
中的“.”作为其中一个片段的结尾。规则应当是:

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

经过测试

它到底是如何工作的?它匹配吗?我想是的,因为我无法打印出服务变量?我试图激活重写日志,但它都是空的..?最后一个字段是数字,顺便说一句。它不起作用的原因是正确的。。。给我一分钟,我会尝试修改:DIt在我的本地机器上工作。。。在我链接的网站上。
([^/]+)
匹配所有内容,最多匹配
/
(4次),而
([0-9]+)
匹配末尾的所有数字(尽管如果愿意,您可以使用
([^/]+)
)<代码>/?将处理末尾的斜杠。没错。。。我不知道你的机器出了什么问题:(嗯……如果我关掉一些其他的重写,它会突然工作起来。)-/啊,你有其他的重写,一般来说,把重写规则从最具体到一般,否则它们会相互干扰。很高兴你弄明白了。(另外,由于您有多个这样的规则,请尽量避免以
(.*)