Apache重写问题:类似网址模式

时间:2011-03-20 18:29:03

标签: apache mod-rewrite url-rewriting rewrite

我正在尝试整理我网站上的网址。我写了以下规则。对于

index.php?id=work&pid=work-item 
RewriteRule (.*)/(.*)/$ /index.php?id=$1&pid=$2 [L]

哪个有效,看起来像这样:

 /work/work-item/

然后为:

index.php?id=work&tag=1
RewriteRule (.*)/(.*)/$ /index.php?id=$1&tag=$2 [L]

这也有效,但打破了第一条规则。有没有人对解决方案有任何想法。

谢谢,

1 个答案:

答案 0 :(得分:1)

是的,您需要添加RewriteCond才能使重写规则成为条件,并且不适用于与您的正则表达式匹配的任何内容。

RewriteCond %{QUERY_STRING} ^pid=...$
RewriteRule (.*)/(.*)/$ /index.php?id=$1&pid=$2 [L]

RewriteCond %{QUERY_STRING} ^tag=...$
RewriteRule (.*)/(.*)/$ /index.php?id=$1&tag=$2 [L]