首页 > 解决方案 > 控制器内的子文件夹给出 404

问题描述

我正在使用 Codeigniter 3.1.10。我正在尝试使用以下文件夹结构分别创建管理员和用户站点

在 route.php 我有以下内容:

$route['default_controller'] = 'home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我试着改成

$route['default_controller'] = 'site/home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

它不起作用。

我想去的时候http://example.com/site应该使用 site/home.php 控制器,去的http://example.com/admin时候应该使用 admin/home.php 控制器

根据官方文档,当你设置一个默认控制器时,它应该搜索子文件夹中定义的默认控制器,但它不起作用。 https://www.codeigniter.com/userguide3/installation/upgrade_300.html#directories-and-default-controller-404-override

许多人通过更改 Codeigniter 的核心文件来修复它。但我想在不更改核心文件的情况下做到这一点。

标签: phpcodeigniter

解决方案


您不能将 sub_dirs 与默认控制器一起使用 .. 但如果您必须这样做,请创建如下正常路由:

$route['default_controller'] = 'home';

在家庭控制器内部,您可以使用重定向到site/home.


推荐阅读