У меня есть набор контроллеров по умолчанию:
$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, я видел подобную проблему, и она была связана с этими конфигурационными переменными. Надеюсь, это поможет вам немного.