我在CodeIgniter 3.1.9中遇到URL路由问题,如果有人可以帮助我解决此问题,我将不胜感激。此路由在CodeIgniter 2.4及更早版本中运行良好。
下面是codeigniter 2.4中运行的 routes.php
$route['default_controller'] = "home";
$route['404_override'] = '';
$route['home'] = "home";
$route[test1] = "home";
$route[test2] = "home";
$route[test3] = "home";
$route['test1/select-product] = "home/SelectProduct";
$route['test2/select-product] = "home/SelectProduct";
$route['test3/select-product] = "home/SelectProduct";
下面是网页目录结构及其映射:
Web根目录结构:
/var/www/html/
├── application
├── assets
├── test1-> /var/www/html/
├── test2-> /var/www/html/
├── test3-> /var/www/html/
├── index.php
├── system
/var/www/html/test1 is symbolic link to /var/www/html
/var/www/html/test2 is symbolic link to /var/www/html
/var/www/html/test3 is symbolic link to /var/www/html
“资产”目录具有test1,test2和test3中每个页面的所有自定义。
此设置在使用公共IP或域名的CodeIgniter 2.4中可以正常运行。在最新版本中,当使用带有emp。的emply base_url的私有IP浏览时,它仍然可以正常工作。
但是,在CodeIgniter 3.1.9中,当我在任何https://example.com/test[1,2,3...] URL中填写表单后按“继续”时,页面将返回到base_url https://example.com。
https://example.com指向/ var / www / html,并且是base_url。
每个子目录(test1 / test2 / test3)的表单均以正确的自定义格式加载,但是当我按继续继续进入下一页时,它将路由回到https://example.com/。
预期结果:
当我点击位于https://example.com/test1/的表单上的继续时,
应该路由到https://example.com/test1/select-product,同样也要路由到test2和test3
可能的解决方案:
我在这个论坛上发现了几篇文章,说“通过默认的codeIgniter 3版本及更高版本,您不能在默认的控制器路由中使用子文件夹。为了能够使用default_controller中的子文件夹,您需要使用MY_Router.php。”但是,没有推荐的修复程序对我有用。
我是CodeIgniter的新手,对PHP的了解有限。如果有人可以帮助我解决此问题,我将非常感谢。
谢谢。