При работе в подкаталоге методы контроллера CodeIgniter 3 не работают - PullRequest
2 голосов
/ 04 мая 2020

В настоящее время я создаю новую подсистему для клиента, которая будет работать в подкаталоге, например https://example.com/new-subsystem.

Их существующий веб-сайт был собственным / жестко запрограммированным PHP, поэтому я должен создать новую папку на root и поместить туда CodeIgniter 3 Framework. Я настроил base_url и вуаля! Он работает нормально.

Теперь проблема в том, что когда я пытаюсь создать новый метод внутри контроллера, он возвращает ошибку 404, что кажется, что сервер пытается обработать запрос буквально и не позволяет CodeIgniter обрабатывать it.

Пример

Когда я пытаюсь получить доступ к https://example.com/new-subsystem, он работает нормально.

Но когда я попытайтесь получить доступ к https://example.com/new-subsystem/test, появится сообщение об ошибке 404 и, похоже, сервер пытается найти другую папку. Вот фактические route.php, config.php, controller, которые, как я считаю, проблема не в этих трех.

маршрутах. php

$route['default_controller'] = 'lockdown';
$route['test'] = 'lockdown/test';

config. php

$config['base_url'] = 'http://localhost/project-lockdown/tutorials/';

Блокировка. php (Контроллер)

    class Lockdown extends CI_Controller {
        public function index()
        {
            // This is working by default. It shows on http://localhost/project-lockdown/tutorials/
            echo "Hello World!"
        }
        public function test(){
        // This should show on http://localhost/project-lockdown/tutorials/test
            echo "Hello, this is a test method and it is not working. Error 404 is shown!";
        }
    }

Main Вопрос: Как сообщить серверу, что я хочу, чтобы CodeIgniter обрабатывал остальную часть запроса, выданного в http://localhost/project-lockdown/tutorials/ (контроллер) / (метод) , и не воспринимал его буквально.

Пока что я застрял здесь и все еще пытаюсь найти решение этой проблемы через inte rnet и могу найти вещь. Я не .htaccess парень, поэтому я думаю, что это как-то связано с .htaccess magi c или чем-то (что я сейчас пытаюсь выучить).

Любая помощь будет принята с благодарностью. Эта проблема не возникнет, если я просто добавлю CodeIgniter в папку root.

Заранее спасибо.

1 Ответ

1 голос
/ 04 мая 2020

Вам необходимо добавить индекс. php в URL для доступа к вашему контроллеру / методу. Попробуйте с -

localhost/project-lockdown/tutorials/index.php/(controller)/

Вы можете удалить index.php, переписав некоторые правила в .htaccess файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...