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
标志将负责传递 sort
和 page
参数。
你的规则不起作用,因为第一个上有 [L]
标志,它只是丢弃其余的,因为它总是首先匹配。
我在用多个参数重写规则时遇到了困难,将 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
标志将负责传递 sort
和 page
参数。
你的规则不起作用,因为第一个上有 [L]
标志,它只是丢弃其余的,因为它总是首先匹配。