2010-10-23 44 views
1

这让我发疯,它应该是容易的,但我不能......如何使这个mod重写

我需要重写URL是这样的:

www.domain.com/foo/bar/more/evenmore.htm 
www.domain.com/foo/bar/more.htm 
www.domain.com/foo/bar.htm 
www.domain.com/foo.htm 

到:

www.domain.com/?var1=foo&var2=bar&var3=more&var4=evenmore 
www.domain.com/?var1=foo&var2=bar&var3=more 
www.domain.com/?var1=foo&var2=bar 
www.domain.com/?var1=foo 

变量的值可能包含[AZ] [AZ] [0-9] - _

+0

会有超过4个参数吗? – SimonJ 2010-10-23 23:15:19

+0

让我们说不... – Peter 2010-10-23 23:54:26

回答

1

我不认为有一个干净的方式来做到这一点;我相信你需要在路径中每个可能的元素使用一个规则。例如:

^([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*).htm$ ?var1=$1&var2=$2&var3=$3&var4=$4 [L] 
^([^\/]*)\/([^\/]*)\/(.*).htm$   ?var1=$1&var2=$2&var3=$3 [L] 
^([^\/]*)\/(.*).htm$      ?var1=$1&var2=$2 [L] 
^([^\/]*).htm$       ?var1=$1 [L] 

最多可以添加九个规则,因为(据我所知)的mod_rewrite是$ 9作为替代参数限制到$ 1。

+0

工作正常,谢谢! :) – Peter 2010-10-24 10:41:23