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

PHP/Apache rewrite rules with multiple parameters?

我在用多个参数重写规则时遇到了困难,将 URL 修改为对 SEO 友好。

我的URL:

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= [L]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)$ cat.php?alias=&sort= [QSA]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)&page=([0-9]+)$ cat.php?alias=&sort=&page= [QSA]

我尝试获取参数,但没有成功。有人对使用哪些重写规则有任何想法吗?

谢谢! --hatxi

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

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

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