mod用大量参数重写

时间:2010-02-08 11:03:30

标签: mod-rewrite

我正在尝试为我的问题找到一个mod重写解决方案。

我有几乎6个参数,我传递给我的网址,我想重写。

让我演示一个3个参数(x,y,z)

的例子

网址是list.php?x = 1& y = 2& z = 3所以规则将是

RewriteRule ^list/x/([^/\.]+)/y/([^/\.]+)/z/([^/\.]+)/?$ list.php?x=$1&y=$2&z=$3

到目前为止很好。

真正棘手的部分(至少对我来说)是参数x,y,z没有预测的顺序所以url可能是

list.php?z=2&x=4&y=9

OR

list.php?y=2&z=4&x=9

PLUS 参数可以不是全部在一起 EX

list.php?z=4

OR

list.php?x=7&z=7

或3个参数的任意组合

因此,对于3个参数,我必须编写所有可能的组合(RewriteRule)

所以我的htaccess实际上是7页,有6个参数,如果想再添加一个,必须写新规则并纠正所有其他

还有其他方法可以实现它。

例如

如果mod重写每个参数,但是当多个参数来自URL以组合每个参数的规则时。

实施例

RewriteRule parameter x rewrite to x/$1
RewriteRule parameter y rewrite to y/$2

因此,当两个参数变为x / $ 1 / y / $ 2

或者一些聪明的方式,我不必编写7页规则并且更容易修改

我希望它清楚

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效

RewriteRule ^list/(?=(?:x/(\d+))?)(?=(?:y/(\d+))?) /list.php?x=$1&y=$2

虽然它会产生空参数,但可能没问题。