一尘不染

子目录中的CodeIgniter默认控制器不起作用

php

我在路由配置中的default_controller设置为“ home.php”。

我的控制器有一个子目录,可将其称为“文件夹”。因此,如果我访问http://mysite.com/folder/,应该调用默认控制器“
folder / home.php”吗?

但是由于某种原因,这不起作用,我得到了404。访问http://mysite.com/folder/homehttp://mysite.com/folder/home/index可以正常工作。除此之外,默认控制器还可以在根目录中运行(http://mysite.com加载home.php)。

有什么想法,其他人有没有经历过?我无法解决这个问题-这似乎是一个CI问题,但我找不到其他人遇到同样的问题。

至少从我的理解角度来看,该文档建议这样做应该可以正常工作:http
:
//codeigniter.com/user_guide/general/controllers.html#subfolders

将默认控制器设置为“ folder /
home.php”意味着http://mysite.com/folder/可以正常工作。除了我希望默认控制器只是“
home.php”-不论是在根目录还是在子目录中,都应按照文档说明加载该目录中的home.php。

干杯


阅读 280

收藏
2020-05-29

共1个答案

一尘不染

对于controllers文件夹中的每个子文件夹,必须在中指定一个默认控制器routes.php。内置功能$route['default_controller']不适用于子文件夹。

例如:用于设置folder子文件夹的默认控制器,以home将以下内容添加到/application/config/routes.php文件中:

$route['folder'] = "folder/home";

这意味着与URL http://mysite.com/folder/相同http://mysite.com/folder/home

2020-05-29