php - 控制器内的子文件夹给出 404
问题描述
我正在使用 Codeigniter 3.1.10。我正在尝试使用以下文件夹结构分别创建管理员和用户站点
- 应用
- 控制器
- 行政
- 主页.php
- 地点
- 主页.php
- 行政
- 控制器
在 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 的核心文件来修复它。但我想在不更改核心文件的情况下做到这一点。
解决方案
您不能将 sub_dirs 与默认控制器一起使用 .. 但如果您必须这样做,请创建如下正常路由:
$route['default_controller'] = 'home';
在家庭控制器内部,您可以使用重定向到site/home
.