CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса

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

CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса

routes.php

$route['default_controller'] = 'frontend/User_control';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

/*backend*********************************/
  $config['backend'] = 'backend/Access_control';  

1) Моя проблема - когда я получаю доступ к URL-адресу http: // localhost / example_ci_row /

Я получаю сообщение 404 Страница не найдена

CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса

2) Как получить доступ к внутреннему URL-адресу Я пробовал http: // localhost / icube_row / admin но я получаю сообщение об ошибке

CodeIgniter устраняет проблемы для доступа к папкам внешнего интерфейса и внутреннего интерфейса

интерфейс User_control

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User_control extends CI_Controller {
    public $current_date;
    function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('form');
    }
    public function index(){
        $this->load->view('frontend/login');
    }
    }
?>

Backend Контроль доступа

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Access_control extends CI_Controller {
    function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('form');           
    }

    public function index(){
        $this->load->view('backend/login');
    }

    }

?>

Отредактировано

Он работает, когда я использую следующие шаги. Я добавил файл Test.php в контроллер и изменил маршруты, после чего я получаю страницу входа в систему.

Test.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Test extends CI_Controller {
    public $current_date;
    function __construct()
    {
        parent::__construct();
        $this->load->library('form_validation');
        $this->load->helper('form');
    }
    public function index(){
        $this->load->view('frontend/login');
    }
    }
?>

routes.php

$route['default_controller'] = 'Test';

Возможно, отсутствует файл .htaccess. пожалуйста, проверьте это один раз

Pravin Vavadiya 15.06.2018 13:22

@ PravinVavadiya, файл htaccess уже есть в папке моего приложения. Стоит ли создавать вне приложения?

user9437856 15.06.2018 13:23

Думаю, с маршрутами может быть какая-то проблема.

user9437856 15.06.2018 13:50

Встроенный $ route ['default_controller'] не будет работать для подпапок. вам необходимо расширить системный маршрутизатор в соответствии с вашими требованиями

Pradeep 15.06.2018 13:54

@pradeep, вы можете мне еще помочь?

user9437856 15.06.2018 13:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
5
1 093
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы настроили Base URL? Приложение-> config-> config.php

$config['base_url'] = 'http://localhost/example_ci_row';

Думаю, может быть проблема с маршрутами

user9437856 15.06.2018 13:51

Чтобы исправить другие проблемы, нам нужно уточнить, что контроллер по умолчанию работает. Когда вы пытаетесь использовать http://localhost/example_ci_row в адресной строке, он не может отображать ошибки в соответствии с этими настройками.

NSJ 15.06.2018 13:56

Да, контроллер по умолчанию работает, но он работает, когда я добавляю контроллер вне папки внешнего и внутреннего интерфейса.

user9437856 15.06.2018 13:59

Я нашел здесь предыдущий ответ на вашу проблему. Следуйте этому stackoverflow.com/questions/6529026/…

NSJ 15.06.2018 14:05

Я уже пробовал это, прежде чем задавать вопрос. Если я нажимаю URL-адрес localhost / example_ci_row / index.php / frontend / User_control, я получаю свою страницу входа, но когда я нажимаю URL-адрес localhost / example_ci_row, он получает страницу 404, не найденную

user9437856 15.06.2018 14:07

Вы создали файл .htaccess и настроили такой файл конфигурации; $config['index_page'] = ' ';?

NSJ 15.06.2018 14:11

Да, я создал .htaccess внутри моей корневой (example_ci_row) папки и $ config ['base_url'] = 'localhost / example_ci_row'; $ config ['index_page'] = 'index.php'; Мой файл .htaccess теперь пуст. я должен добавить какой-нибудь код?

user9437856 15.06.2018 14:14
$config['index_page'] = 'index.php'; это должно быть похоже на это $config['index_page'] = ''; Вы должны удалить index.php, который находится внутри ''
NSJ 15.06.2018 14:17

Да, я удаляю index.php и добавляю код в htacess, который вы предоставили, но по-прежнему не могу получить доступ к $ route ['default_controller'] = 'frontend / User_control'; все еще получаю 404, страница не найдена

user9437856 15.06.2018 14:18
Ответ принят как подходящий

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

Встроенный $route['default_controller'] не будет работать с подпапками. вам необходимо расширить системный маршрутизатор в соответствии с вашими требованиями следующим образом:

Вам необходимо создать MY_Router.php в application > core > MY_Router.php

<?php

class MY_Router extends CI_Router {
    protected function _set_default_controller() {

        if (empty($this->default_controller)) {

            show_error('Unable to determine what should be displayed. A default route has not been specified in the routing file.');
        }
        // Is the method being specified?
        if (sscanf($this->default_controller, '%[^/]/%s', $class, $method) !== 2) {
            $method = 'index';
        }

        // This is what I added, checks if the class is a directory
        if ( is_dir(APPPATH.'controllers/'.$class) ) {

            // Set the class as the directory

            $this->set_directory($class);

            // $method is the class

            $class = $method;

            // Re check for slash if method has been set

            if (sscanf($method, '%[^/]/%s', $class, $method) !== 2) {
                $method = 'index';
            }
        }

        if ( ! file_exists(APPPATH.'controllers/'.$this->directory.ucfirst($class).'.php')) {

            // This will trigger 404 later

            return;
        }
        $this->set_class($class);
        $this->set_method($method);
        // Assign routed segments, index starting from 1
        $this->uri->rsegments = array(
            1 => $class,
            2 => $method
        );
        log_message('debug', 'No URI present. Default controller set.');
    }
}

Это позволит вам использовать $route['default_controller'] = 'frontend/User_control'; в качестве контроллера по умолчанию.

Да, работает. Как это работает? Можете ли вы помочь мне?

user9437856 15.06.2018 14:23

как я уже говорил, по умолчанию встроенный $ route ['default_controller'] не будет работать для подпапок. вам необходимо расширить системный маршрутизатор в соответствии с вашими требованиями

Pradeep 15.06.2018 14:25

мой контроллер по умолчанию работает с вашим кодом MY_Router, но как получить доступ к внутреннему контроллеру?

user9437856 15.06.2018 14:27

Да, конечно, я приму его и проголосую за ваш ответ, но дайте мне немного времени, чтобы реализовать его в моем коде. default_controller работает, но $ config ['backend'] = 'backend / Access_control'; не работает

user9437856 15.06.2018 14:36

Ой!! Боже, я добавил $ config, установленный для маршрута. вот почему это не работает. Теперь он работает отлично. спасибо и голос с моей стороны.

user9437856 15.06.2018 14:38

удовольствие мое, счастливого кодирования

Pradeep 15.06.2018 14:39

Я просто хочу знать, куда мне добавить файл .htaccess внутри приложения для внешнего приложения? который лучший?

user9437856 15.06.2018 14:40

вне папки приложения параллельно папке example_ci_row

Pradeep 15.06.2018 14:41

Прохладный!! Спасибо

user9437856 15.06.2018 14:42

Надеюсь, у вас все хорошо, я знаю, что это не лучший способ перенаправить любого участника на вопрос, но поверьте мне, я решаю одну проблему за последние 4 дня. если вы знаете что-нибудь по этому поводу, дайте мне знать. вот ссылка stackoverflow.com/questions/61977036/…

user9437856 25.05.2020 12:48

Да, вы мне предложили, и это работает. Мне просто нужно знать, нужно ли мне получить доступ к тому же значению имени, тогда как я могу получить к нему доступ? Я пробовал print_r ($ row-> somename [0] -> disbursed); но это не работает.

user9437856 25.05.2020 14:58

@ user9437856 у вас есть доступ вот так foreach($value->somename as $item){ echo $item->disbursed;}

Pradeep 25.05.2020 17:51

Спасибо за это, я уже нахожусь в foreach, и я снова попробовал $ row-> somename [0] -> filesubmit, и он работает

user9437856 26.05.2020 05:39

Другие вопросы по теме