Маршрут CodeIgniter не найден - PullRequest
0 голосов
/ 26 июня 2018

Я изучаю CodeIgniter, поэтому я все еще очень плохо знаком с платформой.У меня следующая проблема:

Я создал контроллер с именем admin;

Затем я добавил путь в файл маршрутов следующим образом:

$route[admin/dashboard] = 'admin/dashboard;

Контроллер

class Admin extends CI_Controller {

    public function dashboard($page ='dashboard'){

        if(!file_exists(APPPATH.'/views/pages/'.$page.'.php')){
            echo 'error';
            show_404();
        }
        //check if Admin
        $data['isAdmin'] = $this->admin_model->isAdmin($this->session->userID);
        var_dump($data['isAdmin']);
        $data['title'] = $page;
        $this->load->view('templates/header', $data);
        $this->load->view('pages/'.$page, $data);
        $this->load->view('templates/footer', $data);
    }

rout.php

  #ADMIN

    $route['admin/dashboard'] = 'admin/dashboard'; //ROUTE FOR ADMIN DASHBOARD

    #USERS
    $route['users']= 'users';
    $route['users/index'] = 'users/index';
    $route['users/login'] ='users/login';
    $route['users/dashboard'] ='users/dashboard';
    $route['users/profile'] = 'users/profile';
    $route['users/userpicks/(:any)'] = 'users/userpicks/$1';

    #PAGES
    $route['pages/index'] = 'pages/index';
    $route['pages/user_data_submit'] = 'pages/user_data_submit';
    $route['(:any)'] = 'pages/index/$1';
    $route['default_controller'] = 'pages/index';

Просмотры

admin
 ------- dashboard.php

Config.php

$config['base_url'] = 'http://mysite';

ПРОБЛЕМА / ВОПРОС

Когда я пытаюсь получить доступ http://mysite/admin/dashboard Я получаю ошибку 404

При трассировке маршрута возникает следующая проблема, которая мне кажется странной.Глядя на приведенное ниже, я считаю, что проблема заключается в конфигурации routes.php ...?

DEBUG - 2018-06-26 08:53:45 -> Поддержка UTF-8 включена DEBUG-

2018-06-26 08:53:45 -> Клиент отправлен: панель мониторинга DEBUG - 2018-06-26

08: 53: 45 -> Маршрут найден: (:любой) -> pages / index / $ 1 DEBUG -

2018-06-26 08:53:45 -> Перенаправление на: панель мониторинга ->

pages / index / панель мониторинга DEBUG- 2018-06-26 08:53:45 -> Глобальные данные POST, GET

и COOKIE санированы DEBUG - 2018-06-26 08:53:45 -> Сессия:

"sess_save_path" пуст;используя значение "session.save_path" из

php.ini.ОШИБКА - 2018-06-26 08:53:45 -> Страница 404 не найдена:

При рассмотрении вышеупомянутого http://mysite/admin/dashboard каким-то образом перенаправляется на

Маршрут найден: (: любой) -> pages / index / $ 1 DEBUG

Я нахожу это странным, поскольку я «жестко закодировал» маршрут и поместил его в самый верх routes.php, но все же онне выполняется по какой-то причине ...?

Любой вклад и / или помощь приветствуются.

Ответы [ 4 ]

0 голосов
/ 28 июня 2018

В вашем файле маршрута вы должны удалить

$config['index_page'] = 'index.php';
  To 
$config['index_page'] = '';

.htaccess Файл

И создайте файл .htaccess в корневой папке вашего проекта

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

этот код файла .htaccess удалит index.php из URL

0 голосов
/ 26 июня 2018
  $route['admin'] = "admin/dashboard";

    $route['default_controller'] = "pages/index"; 

(Это означает, что путь - controller-> pages-> index.php) Просто подтверждаю его вам.

Еще один случай, это может быть связано с файлом htacess.php

Изменить маршрут на:

http://mysite/index.php/admin/dashboard
0 голосов
/ 26 июня 2018

Для простоты удалите маршруты, которые вы определяете, нет необходимости определять маршруты в CI. Если у вас есть контроллер «admin» и панель действий, вы можете просто просмотреть его с помощью URL

http://yoursite/admin/dashboard

. Если index.php не был удален вами явно, то URL будет

http://yoursite/index.php/admin/dashboard

. Если вы находитесь на локальном компьютере, таком как XAMP, тогда URL будет

http://localhost/folderName//index.php/admin/dashboard

.

Надеюсь, это поможет

0 голосов
/ 26 июня 2018

- сначала установите базовый путь в файле config.php в папке конфигурации, например, $ config ['base_url'] = 'http://localhost/CryptoCompare/'; - тогда вы можете использовать этот путь с помощью base_url (); - после этого вы можете использовать echo base_url () + '/ admin / dashboard'; как это

или просто добавьте '/' к определенному URL, а затем попробуйте, я думаю, что это сработает.

...