CodeIgniter – контроллер по умолчанию не загружается автоматически

У меня есть набор контроллеров по умолчанию:

$route['default_controller'] = "Home"; 

Однако, когда я перехожу на http://mydomain.com/ , он говорит 404 Page Not Found, но при переходе на http://mydomain.com/Home контроллер загружается нормально. В чем может быть проблема? Я часами цеплялся за голову. Мой htaccess отправляется здесь, если необходимо. Благодаря!

Оказывается, моя проблема была несколько не связана. Мне пришлось переименовать мой php-файл контроллера по умолчанию в нижний регистр и имя класса контроллера в нижний регистр, и все приступило к работе. Когда CI ищет файл контроллера по умолчанию, он ищет в нижнем регистре для файла; если я назову свой файл контроллера «Home.php» вместо «home.php», CI пропустит его в Linux (поскольку файловые системы Linux чувствительны к регистру).

В вашей маршрутизации нет ничего плохого, проблема связана с вашим файлом htaccess. Попробуйте удалить

 ErrorDocument 404 /index.php 

У вас есть проблема с .htaccess. Лоток следующим образом:

.htaccess

 RewriteEngine on RewriteCond $1 !^(index\.php|images|css|js|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L] 

config.php

 $config['base_url'] = 'www.homepage.com'; $config['index_page'] = ''; 

routes.php

 $route['default_controller'] = "yourcontrollername"; $route['404_override'] = ''; 

Без какой-либо дополнительной информации и кода из ваших конфигураций / контроллеров я бы предложил проверить config / config.php для них (оба должны быть пустыми в обычных случаях):

 $config['base_url'] = ''; $config['index_page'] = ''; 

IIRC, я видел подобную проблему, и она была связана с этими конфигурационными переменными. Надеюсь, это поможет вам немного.