代码之家  ›  专栏  ›  技术社区  ›  Peter

如何使这个mod重写

  •  1
  • Peter  · 技术社区  · 16 年前

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

    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
    

    1 回复  |  直到 16 年前
        1
  •  1
  •   John Calsbeek    16 年前

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

    ^([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*).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作为替换参数。