Codeigniter 代码点火器不';无法识别文件夹下控制器中的我的功能

Codeigniter 代码点火器不';无法识别文件夹下控制器中的我的功能,codeigniter,controller,routing,subcontroller,Codeigniter,Controller,Routing,Subcontroller,我在主控制器文件夹下有一个名为admin的文件夹,在该控制器中有一个文件名admin.php,其中有一个函数xyz 我想使用此url访问该函数 http://localhost/webroot/admin/xyz 然而,当我试图访问它时,它给了我这个错误 404 Page Not Found The page you requested was not found. 这是我的routes.php文件的代码 $default_controller = "welcome"; $controlle

我在主控制器文件夹下有一个名为admin的文件夹,在该控制器中有一个文件名admin.php,其中有一个函数xyz

我想使用此url访问该函数

http://localhost/webroot/admin/xyz

然而,当我试图访问它时,它给了我这个错误

404 Page Not Found

The page you requested was not found.
这是我的routes.php文件的代码

$default_controller = "welcome";
$controller_exceptions = array('welcome','forum');
$route['default_controller'] = $default_controller;
$route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';
$route['404_override'] = '';
$route['admin'] = "admin/admin";
这是我的.htaccess文件

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]  
还启用了mod rewrite:)


请让我知道为什么它不工作,我如何才能使它工作。非常感谢您的任何帮助。谢谢

请确保您的路由存储在
应用程序/config/routes.php
中(而不是问题中指定的
router.php
)。尝试添加使用通配符的路由,如下所示:

$route['admin']        = "admin/admin";    //Routes to 'index()' function
$route['admin/(:any)'] = "admin/admin/$1"; //Handles all other cases
:any
将匹配管理段后包含任何字符的段,并将其/remmap传递给管理控制器


《用户指南》包含有关和的详细信息

感谢左撇子们的快速响应,但它甚至已经停止访问give 404错误:S PS:Yes its routes.php这是打字错误,抱歉。没问题。您可以访问所有其他控制器吗?您是否尝试将
RewriteBase
设置为:
RewriteBase/
RewriteBase/webroot/
?是的,我可以访问不在主控制器文件夹下的管理文件夹中的控制器。我尝试了RewriteBase/并将我引导到localhost页面(即wamp服务器的主页面),RewriteBase/webroot和RewriteBase/webroot/给出了404的相同错误:(感谢您的帮助。如果您将管理控制器移动到
应用程序/控制器/
上,您可以在那里访问它吗?控制器本身定义是否正确?类名以大写字母开头,扩展
CI_controller
(或一个已经扩展的类),等等?不用担心,我很高兴我提供了帮助!(
$route['admin']=“admin/admin”
也可以工作,作为
$route['admin']=“admin/admin/index”
的一个略短的替代方案)