Удалить URL-подпапку на codeigniter 3, используя маршрут

1

Я управляю своим контроллером в подпапку для удобства обслуживания. Они выглядят так:

controller
  -admin
     c_admin
  -super_admin
     c_sa

Таким образом, в общем URL-адресе, который имеет место в localhost, он должен: localhost/app/admin/c_admin и localhost/app/super_admin/c_sa

как я могу получить их так: localhost/app/admin/ и localhost/app/sa/

Спасибо за помощь, это так оценено.

Теги:
codeigniter

2 ответа

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/ и
  • локальный/приложение/са/

Надеюсь, это преодолеет вашу проблему. Если найти какое-либо решение лучше, тогда это, пожалуйста, сообщите об этом.

благодаря

0

Добавьте этот код в config/routes.php

  $route['admin/'] = "admin/c_admin";
  $route['sa/'] = "super_admin/c_sa";

Вы также можете передавать такие аргументы, как this-

$route['admin/(:num)/(:any)'] = "admin/c_admin/$1/$2";

где (:num) используется только для числового значения, и (:any) используется как для числового, так и для символа

Ещё вопросы

Сообщество Overcoder
Наверх
Меню