使用route删除codeigniter 3上的url子文件夹

时间:2015-11-18 10:44:32

标签: php codeigniter

我将控制器管理到子文件夹中以便于维护。它们看起来像这样:

controller
  -admin
     c_admin
  -super_admin
     c_sa

因此,在localhost中的常见URL中,它必须:localhost/app/admin/c_adminlocalhost/app/super_admin/c_sa

我怎样才能将它们变成这样:localhost/app/admin/localhost/app/sa/

感谢您的帮助,非常感谢。

2 个答案:

答案 0 :(得分:0)

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)用于数字和&字符

答案 1 :(得分:0)

以下方法对我有用:

如果您尝试直接访问应用程序文件夹的管理员应用程序,例如提供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';

现在试试你的路线我希望它能够定位正确的应用

  • localhost / app / admin /
  • 本地主机/应用/ SA /

我希望这会克服你的问题。 如果找到任何更好的解决方案,那么请让我们知道。

由于