在你告诉我去CodeIgniter multi-application .htaccess problem之前,请听我说。
我说的原因是因为我的问题似乎与这张海报几乎完全相同。我的目录结构是:
application/
admin/
app/
..
.htaccess
admin.php
index.php
htaccess规则是:
RewriteEngine On
RewriteBase /dev/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin$ admin\.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin\/(.*)$ admin\.php/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index\.php/$1 [L,QSA]
基本上我需要的是:
输入example.com/admin - url保留admin文件夹,并将用户重定向到admin.php
输入example.com/admin/controller/method - 与上面相同
输入example.com/anything_else - 用户被定向到app而不是admin(index.php)
在测试上述帖子的htaccess中的人员(在本质上是从中复制的),在线测试器中,涉及带有“admin”的URI的两个规则由于某种原因未通过。我只能得到admin(不是^ admin $)作为模式工作(根据测试人员的说法)。
答案 0 :(得分:0)
RewriteRule ^dev/admin(\/?) admin.php? [L,QSA]
应该为你做。这将考虑/admin
,/admin/
和/admin/whatever/here
。但对于后者,请注意,由于您有QSA
,因此会将其附加到目标网址,如下所示:/admin.php?whatever/here
。