![](/img/trans.png)
[英]Cannot able to remove the subfolder directory from url in Codeigniter using routing
[英]Remove url subfolder on codeigniter 3 using route
我将控制器管理到子文件夹中,以便于维护。 它们看起来像这样:
controller
-admin
c_admin
-super_admin
c_sa
因此,在localhost中常见的URL中,它必须为: localhost/app/admin/c_admin
和localhost/app/super_admin/c_sa
我怎样才能让他们像这样: localhost/app/admin/
和localhost/app/sa/
感谢您的帮助,非常感谢。
在config/routes.php
上添加此代码
$route['admin/'] = "admin/c_admin";
$route['sa/'] = "super_admin/c_sa";
您还可以传递这样的参数-
$route['admin/(:num)/(:any)'] = "admin/c_admin/$1/$2";
其中(:num)
仅用于数字值, (:any)
同时用于数字和字符
以下方法对我有用:
如果您尝试直接访问应用程序文件夹的管理应用程序,例如提供URL
localhost / app / admin /,则根文件index.php将引发异常,例如
“您的视图文件夹路径似乎未正确设置。请打开以下文件并更正此文件:index.php”
要解决此问题,请尝试以下方法:
在index.php中添加以下代码
// Applications handling
$mystring = $_SERVER['REQUEST_URI'];
$app_names = '/(\badmin\b)|(\bsa\b)/i';
$app_name = null;
preg_match($app_names, $mystring, $app_name);
// if array emtpy then call the default app 'admin'
$app_name = (isset($app_name[0]))?$app_name[0]:'admin';
// if value found sa then set the app name 'super_admin'
$app_name = ($app_name === 'sa')?'super_admin':$app_name;
$application_folder = "application/{$app_name}";
然后去你的
application / admin / config / routes.php并添加此路由$ route ['admin'] ='controller-name';
super_admin应用程序的相同过程
application / super_admin / config / routes.php并添加此路由$ route ['sa'] ='controller-name';
现在尝试您的路线,希望它将针对正确的应用
希望这能解决您的问题。 如果找到更好的解决方案,那么请告知。
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.