我试图构造一个mod_rewrite URL,但似乎无法使查询字符串与mod_rewrite规则一起工作。
我的代码是:
RewriteEngine On
Options -Multiviews
Options -Indexes
Options +FollowSymLinks
RewriteBase /
RewriteRule ^(.*)/$ $1 [L,R=301]
RewriteRule ^awards awards.php [L]
RewriteRule ^nominees/([a-z]*)?$ /nominees.php?order=$1 [L,QSA]
RewriteRule ^nominees/([a-z]*)?$ /nominees.php?cat=$1 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([0-9]*)$ /nominees.php?order=$1&page=$2 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([0-9]*)$ /nominees.php?cat=$1&page=$2 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([a-z]*)/([0-9]*)$ /nominees.php?cat=$1&order=$2&page=$3 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([a-z]*)$ /nominees.php?cat=$1&order=$2 [L,QSA]
RewriteRule ^nominees/([0-9]*)$ /nominees.php?page=$1 [L,QSA]
RewriteRule ^nominees nominees.php [L]
RewriteRule ^register register.php [L]
RewriteRule ^admin admin.php [L]
RewriteRule ^login login.php [L]
RewriteRule ^logout logout.php [L]如果我移除
RewriteRule ^nominees/([a-z]*)?$ /nominees.php?cat=$1 [L,QSA]然后,
RewriteRule ^nominees/([a-z]*)?$ /nominees.php?order=$1 [L,QSA]起作用..。我只是不能把头绕着它!
我要的是:
被提名人/平均数
被提名人/会计师
被提名人/会计师/平均数
发布于 2015-01-13 14:39:47
正则表达式是,这两个规则的完全相同,这意味着第一条规则将匹配,而第二条规则完全不起任何作用。这适用于完全相同的每一组。您需要一些其他限定符来区分"order“和"cat”参数。也许是这样的:
RewriteRule ^nominees/order/([a-z]*)?$ /nominees.php?order=$1 [L,QSA]
RewriteRule ^nominees/cat/([a-z]*)?$ /nominees.php?cat=$1 [L,QSA]
RewriteRule ^nominees/order/([a-z]*)/([0-9]*)$ /nominees.php?order=$1&page=$2 [L,QSA]
RewriteRule ^nominees/cat/([a-z]*)/([0-9]*)$ /nominees.php?cat=$1&page=$2 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([a-z]*)/([0-9]*)$ /nominees.php?cat=$1&order=$2&page=$3 [L,QSA]
RewriteRule ^nominees/([a-z]*)/([a-z]*)$ /nominees.php?cat=$1&order=$2 [L,QSA]https://stackoverflow.com/questions/27924566
复制相似问题