我想重写这两个页面的网址:
原件:
http://example.com/team.php?PAGE=profile&LINK=jenifer
http://example.com/course.php?PAGE=view&LINK=dance
所需:
我试过这个规则
RewriteRule ^([^/]*)$ /team.php?PAGE=profile&LINK=$1 [L]
RewriteRule ^([^/]*)$ /course.php?PAGE=view&LINK=$1 [L]
我不知道为什么只有第一页被重新编辑,第二页也被重写为第一页。
另外,我的index.php被重定向到team.php
谢谢!
答案 0 :(得分:0)
mod_rewrite
依次查看每个规则,直到找到匹配的规则。
以http://example.com/jenifer
为例,其中jenifer
的请求与第一个规则模式^([^/]*)$
匹配。然后查看http://example.com/dance
,再次dance
与第一个规则模式^([^/]*)$
匹配。第二条规则从未尝试过,因为第一条规则已经吞下了每个请求。
如果您的请求与模式^([^/]*)$
匹配,则Apache将始终停在第一个RewriteRule
,因为这是第一个匹配的。
如果你想区分团队成员和课程,你必须有不同的模式来匹配,正如@anubhava在评论中已经建议的那样,例如
RewriteRule ^team/([^/]*)$ /team.php?PAGE=profile&LINK=$1 [L]
RewriteRule ^course/([^/]*)$ /course.php?PAGE=view&LINK=$1 [L]
现在,当您收到http://example.com/team/jenifer
或http://example.com/course/dance
的请求时,由于请求中的前导team
或course
,Apache可以选择正确的规则。