Php 相同。htaccess规则不';行不通
我想重写两个页面的url,如下所示: 原件: 期望的: 我试过这个规则Php 相同。htaccess规则不';行不通,php,.htaccess,Php,.htaccess,我想重写两个页面的url,如下所示: 原件: 期望的: 我试过这个规则 RewriteRule ^([^/]*)$ /team.php?PAGE=profile&LINK=$1 [L] RewriteRule ^([^/]*)$ /course.php?PAGE=view&LINK=$1 [L] 我不知道为什么只有第一页被正确重写,第二页也被重写为第一页 另外,我的index.php被重定向到team.php 谢谢大家! 依次查看每个规则,直到找到匹配的规则 以h
RewriteRule ^([^/]*)$ /team.php?PAGE=profile&LINK=$1 [L]
RewriteRule ^([^/]*)$ /course.php?PAGE=view&LINK=$1 [L]
我不知道为什么只有第一页被正确重写,第二页也被重写为第一页
另外,我的index.php被重定向到team.php
谢谢大家! 依次查看每个规则,直到找到匹配的规则
以http://example.com/jenifer
,其中对jenifer
的请求与第一个规则模式^([^/]*)$
匹配。看看http://example.com/dance
,这里的舞蹈
与第一个规则模式^([^/]*)$
匹配。第二条规则从未尝试过,因为第一条规则已经接受了每个请求
当您有一个与模式^([^/]*)$
匹配的请求时,Apache将始终在第一个重写规则时停止,因为这是第一个匹配的请求
如果你想区分团队成员和课程,你还必须有不同的模式来匹配,正如@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
,Apache能够选择正确的规则,因为请求中有领先的团队
或课程
。不起作用。漂亮的URL方案也应该有一些php处理程序的标识符。类似于http://example.com/team/jenifer
和http://example.com/course/dance
会更好。如果我删除第二条规则,即使第一页有效?因为它是有效的。只需将单个规则保持为RewriteRule^([\w-]+)/?$/team.php?PAGE=profile&LINK=$1[L,QSA]
就可以了,但它不能同时适用于这两个规则,因为模式是相同的。您的第一个规则是“匹配子文件夹中没有的任何内容,并重写到team.php页面,然后不处理任何规则。”因为两个重写规则具有相同的模式匹配,所以第二个规则永远不会被命中。