我正在尝试为我的问题找到一个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页规则并且更容易修改
我希望它清楚
答案 0 :(得分:0)
这样的事情应该有效
RewriteRule ^list/(?=(?:x/(\d+))?)(?=(?:y/(\d+))?) /list.php?x=$1&y=$2
虽然它会产生空参数,但可能没问题。