Codeigniter 3.0 не работает на Bluehost

Когда я запускаю приложение Codeigniter 3.0 на локальном сервере, оно работает нормально. Однако, когда я загрузил его на Bluehost, он не работает.

Сам Codeigniter работает, но я получаю Codeingiter 404, а не Apache 404 - страница получает стиль и т.д.

Я думаю, что проблема связана с Codeigniter 3.0 и Bluehost, так как я загрузил 2 разных приложения в BH.

Когда я использую Codeigniter 2.x, все работает нормально.


person Muni Perez    schedule 05.08.2015    source источник
comment
* Я скоро опубликую свой .htaccess, сейчас я на мобильном телефоне. Но если кто уже знает об этой проблеме и как ее решить. Спасибо   -  person Muni Perez    schedule 05.08.2015


Ответы (2)


Начиная с CodeIgniter 3.0, все имена файлов классов (библиотек, драйверов, контроллеров и моделей) должны называться подобно Ucfirst или, другими словами, начинаться с заглавной буквы.

Контроллеры:

application/controllers/welcome.php to application/controllers/Welcome.php

Модели:

application/models/misc_model.php to application/models/Misc_model.php

Источник: преобразование имен файлов классов. в CodeIgniter

Обратите внимание, что это НЕ влияет на каталоги, файлы конфигурации, представления, помощники, хуки и все остальное — оно применяется только к классам.

Теперь вы должны следовать только одному простому правилу: имена классов должны быть в Ucfirst, а все остальное в нижнем регистре.

и .htaccess должно быть

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>
person Abdulla Nilam    schedule 06.08.2015
comment
Спасибо Абдулла! Я изменил регистр в файлах классов, и это сработало отлично. Однако как вы объясните, что это работает на моем компьютере и возникает эта проблема только после того, как я загружу его на Bluehost? (Я не проверял это ни на одном другом хостинг-провайдере). С наилучшими пожеланиями! - person Muni Perez; 06.08.2015
comment
Извините, забыл ;) Готово. - person Muni Perez; 06.08.2015

Надеюсь, вам подойдет следующий .htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
person Ariful Islam    schedule 05.08.2015
comment
Ариф, спасибо за ответ. Все равно не работает. Я собираюсь проверить, что Абдулла сказал ниже. С наилучшими пожеланиями - person Muni Perez; 06.08.2015