[英]Codeigniter 3 controller in subfolder not working on live server
我正在使用 CI 3.1.11
开发我的应用程序时遇到了一些问题,即我使用 CI。 我尝试在 CI 上的/app/controller/
创建一个新文件夹。 哪一个是/Admin
来优化我的代码。 所以,我的文件看起来像这样:
--CONTROLLER
--Admin
Home.php
User.php
--Student
Home.php
Study.php
Homepage.php
Another.php
在本地
http://localhost/myweb/admin/home
http://localhost/myweb/student/home
这是工作。
但是,当我尝试托管我的网站时
http://sub.domain.com/admin/home
http://sub.domain.com/student/home
它的损坏未找到第 404 页。
. . 我测试在实时服务器上设置 route.php,如:
$route['testpage'] = 'admin/home';
所以我尝试,
http://sub.domain.com/testpage
被这个问题困扰了 2 天,我找到了我的解决方案:
如果您有如下文件夹结构:
--CONTROLLER
--Admin
Home.php
User.php
--Student
Home.php
Study.php
Homepage.php
Another.php
你应该像这样在routes.php 中定义你的路由:
// for 'Admin' folder
$route['testpage'] = "Admin/home";
$route['testpage/(:any)'] = "Admin/$1"; // to target Subfolder and other controller
$route['testpage/(:any)/(:any)'] = "Admin/$1/$2"; // to target controllers function
$route['testpage/(:any)/(:any)/(:any)'] = "Admin/$1/$2/$3"; // to target controller function parameters
请注意,文件夹名称定义是大写字母(我认为这取决于服务器或 php.ini 配置,不确定)
在这种情况下,您的子域将是:
http://sub.domain.com/testpage
我在PHP 7.3 中使用Codeigniter 3.1.11
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.