我昨天一整天都在尝试,但都失败了。
我需要重写所有url,将它们作为参数传递给我的前端控制器。
但我也需要重写所有以"admin"开头的url,并将其作为参数传递给我的管理控制器。。。
这是我试过的代码。我知道它不能按原样工作,但我不知道如何做到…
RewriteRule ^(.*)$ /index.php?uri=$1 [L]
RewriteCond $1 !^/admin
RewriteRule ^admin/(.*)$ /admin/index.php?uri=$1 [L]
如果有人能帮助我,我将不胜感激。
将您的RewriteCond置于RewriteRule之前,或者将您的管理员重写置于其他一切之前。
目前的情况是,访问/admin的访问者与第一个重写规则相匹配,然后就是它
由于第二个RewriteRule的位置,您的RewriteCond实际上正在应用于它。
我还将$1更改为%{REQUEST_URI},并将QSA添加到标志中,以便正确传递查询字符串。
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)$ /index.php?uri=$1 [L,QSA]
RewriteRule ^admin/(.*)$ /admin/index.php?uri=$1 [L,QSA]
这应该行得通。