.htaccess RewriteRule,带3个Get参数

时间:2014-06-12 12:54:20

标签: php .htaccess mod-rewrite redirect

我将使用.htaccess文件重定向

http://www.example.org/results.php?q=anything&start=0&type=web

http://www.example.org/search/anything/0/web

这可能吗? 此时,我只重定向q-GET参数,使用此RewriteRule:

RewriteRule ^search/(.*)$ results.php?q=$1 [L,QSA]

它仍然有效,但我不知道重写3个Get参数。

2 个答案:

答案 0 :(得分:1)

RewriteRule ^search/(.*)/(.*)/(.*)$ results.php?q=$1&start=$2&type=$3 [L,QSA]

答案 1 :(得分:0)

RewriteRule ^(search)/(.*)/(\d+)/(.*)$ results.php?q=$2&start=$3&type=$4 [L,QSA]
小解释:

当您使用(.*)进行正则表达式匹配时,您可以使用$#获取匹配的部分,其中#是一个增量数字,表示链中每个匹配项的位置。< / p>

  • search/(.*) = search/$1
  • search/(.*)/(.*) = search/$1/$2
  • search/(.*)/(.*)/(.*) = search/$1/$2/$3