Моя кодировка не работает в Codeigniter 3 - PullRequest
0 голосов
/ 24 января 2020

Привет, моя пользовательская маршрутизация не работает. Когда я печатаю http://localhost/sitename, работает маршрутизация default_controller, но когда я печатаю http://localhost/sitename/test, вывод из браузера 404 не найден. Пожалуйста, помогите мне спасибо.

$route['default_controller'] = 'Traffic/test';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['test'] = "Traffic/test";

Ответы [ 3 ]

1 голос
/ 24 января 2020

Попробуйте этот код на маршрутах. php

$route['default_controller'] = 'welcome';
$route['test'] = 'traffic/test'; 
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
0 голосов
/ 24 января 2020

Обратите внимание, что $route['default_controller'] ожидает контроллер , а не пару контроллер / метод. Первое, что вам нужно сделать, это изменить на $route['default_controller'] = 'traffic';

Возможно, вы добьетесь некоторого успеха при использовании пары контроллер / метод, но у вас могут возникнуть проблемы в будущем, поскольку ваша маршрутизация усложняется.

также, как кто-то еще уже заметил, должны соблюдаться правила именования и регистра кода: даже если имя файла контроллера прописное (то есть Traffic.php), а класс контроллера тоже заглавный (class Traffic extends CI_Controller) всякий раз, когда вы делаете ссылка на контроллер, такая как в маршруте default_controller, вы должны go все строчные.

При этом ваша правильная конфигурация маршрутизации должна быть:

$route['default_controller'] = 'traffic';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['test'] = "traffic/test";

С этой конфигурацией :

  • Загрузка в example.com загрузит https://example.com/traffic/index
  • Просмотр в example.com/test загрузит https://example.com/traffic/test
  • Просмотр любого другого URI попытается загрузить пару контроллер / метод в соответствии со стандартной маршрутизацией Codeigniter (т. Е. Example.com/something/trial загрузит контроллер something и метод trial в бывший)
0 голосов
/ 24 января 2020

Мне пришлось переименовать мой файл контроллера по умолчанию php в нижний регистр и имя класса контроллера в нижний регистр, и все начало работать. Когда CI ищет файл контроллера по умолчанию, он ищет файл в нижнем регистре; если я назову свой файл контроллера «Трафик / тест» вместо «трафик / тест»

$route['default_controller'] = 'traffic/test';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['test'] = "traffic/test";

, то теперь выше кода скопируйте и вставьте routes.php

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