CodeIgniter: 404 Страница не найдена на Live Server

Я разрабатываю небольшое веб-приложение с помощью CodeIgniter. После тестирования его локально я пошел, чтобы поместить его на свой веб-сервер, чтобы позволить другим людям проверить некоторые функции. Во время навигации к сайту я получаю: –

Страница 404 Страница не найдена

При просмотре на моей локальной машине все загружается и работает отлично.

Это то, что я загрузил в каталог public_html :

 application directory system directory assets directory (my assets for the site) index.php 

Все они находятся в каталоге public_html . Как я уже сказал, это дает мне страницу ошибок CodeIgniters 404, поэтому я знаю, что она, по крайней мере, видит CodeIgniter. Я также попытался изменить $config['base_url'] , в config.php , на мой URL. Такая же ошибка при изменении этого или оставлении его пустым. Я проверил маршруты, и все это кажется правильным. При загрузке на моем локальном компьютере все очень просто загружается.

Я также не использую файл .htaccess в это время

Любые предложения о том, что я должен попробовать?
Большое спасибо!

Вы используете MVC с концепцией OOPS. Таким образом, есть некоторые определенные правила.

1) Имя вашего класса (то есть: имя контроллера) должно начинаться с заглавной буквы.

например: имя вашего контроллера – «icecream». это должно быть « I cecream»

В localhost это может быть не обязательно, но на сервере он проверяет все эти правила, иначе он не сможет определить правильное имя класса.

Изменяется первая буква в верхнем регистре имени файла и имени класса.

файл: controllers/Login.php

class: class Login extends CI_Controller { ... }

Имя файла, как имя класса, должно начинаться с заглавной буквы. Это правило применяется и к моделям.

https://ellislab.com/codeigniter/user-guide/general/models.html

У меня такая же проблема. Менялось изменение первой буквы в верхнем регистре.

Я решил эту проблему, просто сделайте несколько изменений

1- все имя класса контроллера должно начинаться с заглавной буквы. Я имею в виду, что первая буква класса должна быть капиталом. например, у нас есть контроллер с именем класса Страницы

поэтому это должны быть Страницы не страницы

2- сохранить класс контроллера Страницы как Pages.php не pages.php

поэтому первое письмо должно быть капиталом

то же самое для модели, первая Pages_model.php класса модели должна быть капиталом, а также сохранять класс модели как Pages_model.php not page_model.php

надеюсь, что это решит проблему ур

Есть несколько вещей, которые вы можете проверить здесь. Я поеду с вами.

1, При переходе на живой сервер с localhost (htdocs) вам нужно убедиться, что версия используемого вами PHP поддерживается.

Чтобы проверить это: создайте файл index.php и добавьте только строку ниже.

 <?php phpinfo(); ?> 

Просто нажмите « Ctrl + F » и выполните поиск «версии». Вы найдете версию php. Возможно, для поддержки функций может потребоваться 5.3+.

2, Проверьте свой config/config.php и проверьте свой $config['base_url'] и $config['index_page'] снимок ниже

введите описание изображения здесь

Я рекомендую поместить имя сайта в базовый URL-адрес: « www.site.com/ », но удалите index.php для очистки.

3, НАСТОЯЩЕЕ ПОСЛЕДНИЕ ПРИЧИНЫ ТАК НАЧАЛИСЬ С ЭТОЙ

Скорее всего, это файл .htaccess. Вот мой, сделанный Эллиотом Хотоном. Поместите это в свой корневой каталог и, если необходимо, измените строку 9 «RewriteBase /».

 <IfModule mod_rewrite.c> RewriteEngine On # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading # slashes. # If your page resides at # http://www.example.com/mypage/test1 # then use # RewriteBase /mypage/test1/ RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L] 

 <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php 

(Убедитесь, что вы используете обе части выше. Редактор разбил его на два, но весь код выше – это один файл .htaccess).

Если ни одно из вышеприведенных действий не даст мне крик, мы пройдем через него.

Я застрял в этом примерно за день, просто переименую имя файла «Имя файла» с заглавной буквой и переименую класс контроллера «Имя класса». и он решил проблему.

 **class Myclass extends CI_Controller{} save file: Myclass.php** 

приложение / Config / config.php

 $config['base_url'] = ''; 

Решила проблему. Измените имя своего класса, чтобы сделать только первую букву заглавной. поэтому, если вы получили что-то вроде «MyClass», замените его на «Myclass». примените его как к имени файла, так и к имени класса.

Я делаю это на локальном и производственном сервере таким образом:


Маршруты:

 $route['default_controller'] = 'Home_controller'; 

Имена файлов:

  • в папке контроллеров : Home_controller.php
  • в папке моделей : Home_model.php
  • в папке views : Home.php

Home_controller.php:

  class Home_controller extends CI_Controller { public function index(){ //loading Home_model $this->load->model('Home_model'); //get data from DB $data['db_data'] = $this->Home_model->getData(); //pass $data to Home.html $this->load->view('Home', $data); } } 

Home_model.php:

  class Home_model extends CI_Model { ... } 

Больше не должно быть больше проблем с делами 🙂

Проверьте файлы root/application/core/ folder, если вы использовали MY_Loader.php , MY_Parser.php или MY_Router.php .

Если это так, попробуйте удалить файлы из папки и проверить, не имеет значения. Фактически, просто очистите эту папку, просто сохранив файл index.html по умолчанию.

Я обнаружил, что эти файлы заставляли проблему перенаправить на правильные функции контроллера.

Надеюсь, это поможет!

Я смог зафиксировать подобные ошибки, изменив

 http://ip-address/html/ci3-fire-starter/htdocs/index.php/ 

на строке приложения / config / config.php 26.