PHP/Apache用多个参数重写规则


PHP/Apache rewrite rules with multiple parameters?

当重写带有多个参数的规则时,我很难将URL修改为seo友好。

我的网址:

http://domain/cat.php?alias=canon&sort=price&page=3

我想有一个重写规则,使以下内容:

http://domain/c/canon?sort=price&page=3

以下是我当前的规则:

RewriteEngine On
RewriteRule ^c/([a-z,0-9-]+)$ cat.php?alias=$1 [L]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)$ cat.php?alias=$1&sort=$2 [QSA]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)&page=([0-9]+)$ cat.php?alias=$1&sort=$2&page=$3 [QSA]

我试图获得参数,但它不起作用。有人知道应该使用哪些重写规则吗?

谢谢!——hatxi

RewriteRule ^c/([a-z,0-9-]+) cat.php?alias=$1 [L,QSA]

应该足够了。QSA标志将负责传递sortpage参数。

你的规则不工作,因为第一个上的[L]标志,它只是丢弃其余的,因为它总是首先匹配。