将多个htaccess重写规则合并为一个

时间:2010-01-15 22:18:35

标签: php regex .htaccess

首先,让我这样说:我吮吸正则表达式和htaccess。我正在尝试制定一个能够将url段正确解析为变量的规则。到目前为止,我有这个:

RewriteRule ^([^/]+)/?$ index.php?query[]=$1 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ index.php?query[]=$1&query[]=$2&query[]=$3&query[]=$4 [QSA,L]

它有效,但我觉得它比它需要的时间更长;如果我想要5个或6个或7个变量怎么办?是否有更简洁的方法来写出来?

另外,当我吐出查询数组时,第一个元素总是index.php。怎么了?

1 个答案:

答案 0 :(得分:1)

不要使用RewriteRule将pathinfo转换为查询参数,而只需在Apache HTTP Server中启用MultiViews,并在$_SERVER['PATH_INFO']中使用index.php,而explode()帮助不大。