.htaccess URL写入冲突

时间:2013-08-21 17:29:54

标签: apache .htaccess

我有两个不同的php页面page.php和team.php。我重写page.php的规则如下:

RewriteRule ^([^/]+)/([0-9]+)\/?$ /page.php?name=$1&id=$2

它会将链接example.com/privacy_policy/30重定向到example.com/page.php?name=privacy_policy&id=30

现在我想为team.php编写规则,以便链接example.com/team/Zeeshan_Lalani/3重定向到example.com/team.php?name=Zeeshan_Lalani&id=3

我试图在上面的网址上完成的规则​​

RewriteRule ^team/([^/]+)/([0-9]+)\/?$ /team.php?name=$1&id=$2

但是使用此规则它与page.php规则冲突并呈现404 not found错误,当我评论page.php规则时它可以正常工作。

请在这里建议我做错了什么?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用[L]标志。该标志表示如果语句正确,则不会匹配其他语句。例如:

RewriteRule ^team/([^/]+)/([0-9]+)\/?$ /team.php?name=$1&id=$2 [L]
RewriteRule ^([^/]+)/([0-9]+)\/?$ /page.php?name=$1&id=$2 [L]

请确保将“团队”规则置于另一个规则之上,否则第二条规则可能会在应用团队规则之前匹配。