只有顶级RewriteRule才有效

时间:2016-04-04 11:25:56

标签: .htaccess

我有两个RewriteRules无法协同工作,每个都会单独工作,但只有最顶层的工作才能合作。

我的目录结构:http://localhost/project/sitepages

页面:

http://localhost/project/sitepages/page1.php?name=pagename

http://localhost/project/sitepages/page2.php?name=pagename&id=pageid&name2=pagename2

我希望如何访问这些页面:

http://localhost/project/pagename

http://localhost/project/pagename/pageid/pagename2

我使用RewriteRule

RewriteRule ^(.*)$ sitepages/page1.php?name=$1 [QSA]

RewriteRule ^(.*)$ sitepages/page2.php?name=$1&id=$2&name2=$3 [QSA]

1 个答案:

答案 0 :(得分:0)

.*匹配任何内容显然只有第一条规则有效。

您可以使用以下两条规则:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ sitepages/page1.php?name=$1 [QSA,L]

RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ sitepages/page2.php?name=$1&id=$2&name2=$3 [QSA,L]