如何制作这个mod_rewrite

时间:2010-10-23 22:27:46

标签: regex apache .htaccess mod-rewrite

这让我发疯,应该很容易,但我不能......

我需要像这样重写网址:

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

变量值可能包含[a-z] [A-Z] [0-9] - _

1 个答案:

答案 0 :(得分: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]

您最多可以添加九条规则,因为(AFAIK)mod_rewrite仅限于$ 1到$ 9作为替换参数。