Codeigniter Routes Controller Sub Folder

北战南征 提交于 2019-12-18 08:55:49

问题


I've a problem with routes and controller. I've got 2 types of controller: first type is used to manage the webpages, second type is used for cms and I prefer to put them in a sub-folder. Example:

/controller/site.php (for webpages)
/controller/admin/ (for controllers to manage cms)

in routes.php I've write:

$route['(:any)'] = "site/$1";
$route['admin/(:any)'] = "admin/$1";

I've got the file .htacces set in this way:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|css|js|font|woff|ttf|svg|eot|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

and this variable on config.php:

$config['index'] = '';

but it works only for "site". If I write "mywebsite/admin/login" for example, it return 404 error.

I've found also MY_Router to extend CI_Route but doesn't work.

Can someone help me to resolve this problem ?


回答1:


Put the admin route before the any route:

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";

otherwise it will always hit any and redirect to site. You have to give it a chance to match admin before matching any.



来源:https://stackoverflow.com/questions/18765439/codeigniter-routes-controller-sub-folder

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!