контроллеры маршрутизации в подпапках – codeigniter

так как я хочу разделить интерфейс и бэкэнд системы. Я создал 2 папки внутри контроллеров в качестве интерфейса и бэкэнд

Ниже приведена структура моей папки контроллера

controller --frontend ---store.php ---processing.php ---profile.php ---authenticate.php ---register.php --backend ---authenticate.php ---stats.php ---users.php ---property_manage.php ---register.php 

я могу получить доступ к функциям, используя

 frontend/store/add frontend/store/manage ...... backend/stats/sales backend/stats/payments ..... 

но я хочу снять интерфейс и сегменты бэкэнда с URL.

Я проверил функцию маршрутизации в codeigniter, но, по моим сведениям, мне нужно индивидуально указать каждый маршрут. Поскольку у меня около 12 контроллеров, и каждый из них имеет около 10-15 функций, мне может потребоваться указать каждую функцию на маршрут.

есть ли другой эффективный способ достижения маршрутизации или любым другим способом? (без использования htaccess)

Сделай это:

 $route['store/(:any)'] = 'frontend/store/$1'; $route['processing/(:any)'] = 'frontend/processing/$1'; $route['profile/(:any)'] = 'frontend/profile/$1'; 

То же самое для бэкэнд:

 $route['backend/(:any)'] = 'backend/authenticate/$1'; 

Вам не нужно создавать каждое правило в routes.php для каждой функции контроллера, но достаточно одного правила для каждого контроллера, как указано выше.

Маршрутизация URI: руководство пользователя CodeIgniter

$1 представляет первое выражение, здесь (:any) – это выражение, вы можете иметь несколько выражений для каждого правила, а выражение представлено как $1 , $2 и т. Д. С другой стороны.

Аналогично, (:num) будет соответствовать сегменту, содержащему только числа, (:any) будет соответствовать сегменту, содержащему любой символ, (\d+) будет соответствовать любой цифре, ([az]+) будет соответствовать любому альфа-тексту.

Вы должны как-то отличать интерфейс от бэкэнда. Возможно, задайте маршрут, который перенаправляет любой uri с «admin» на бэкэнд, и что угодно, без «admin» в интерфейс.

Для Front-End вы можете добавить это в route.php:

 $this->set_directory( "frontend" ); 

поэтому в URL-адресе браузера нет необходимости включать «frontend»,