昨天我一直在努力和失败。
我需要重写所有网址,将它们作为参数传递给我的前端控制器。
但我也需要将所有以“admin”开头的网址重写并作为参数传递给我的管理控制器......
这是我试过的代码。我知道它不能正常工作,但我无法弄清楚如何做到这一点......
RewriteRule ^(.*)$ /index.php?uri=$1 [L]
RewriteCond $1 !^/admin
RewriteRule ^admin/(.*)$ /admin/index.php?uri=$1 [L]
如果有人可以帮助我,我会非常感激。
答案 0 :(得分:1)
将RewriteCond放在RewriteRule之前,或者将管理员重写为其他所有内容。
就目前而言,访问/ admin的访问者与第一个重写规则相匹配,然后就是它。
你的RewriteCond实际上是因为它的位置而适用于第二个RewriteRule。
我还会将$ 1更改为%{REQUEST_URI}并将QSA添加到标志中,以便正确传递查询字符串。
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)$ /index.php?uri=$1 [L,QSA]
RewriteRule ^admin/(.*)$ /admin/index.php?uri=$1 [L,QSA]
这应该有用。