Подтвердить что ты не робот

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

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

Страница <Страницa > 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 в это время

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

4b9b3361

Ответ 1

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

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

например: ваше имя контроллера - "icecream". это должно быть < I cecream '

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

Ответ 2

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

файл: controllers/Login.php

класс: class Login extends CI_Controller { ... }

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

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

Ответ 3

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

Ответ 4

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

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

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

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

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

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

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

Ответ 5

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

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

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

<?php phpinfo(); ?>

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

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

enter image description here

Я рекомендую поместить имя сайта в базовый пример 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).

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

Ответ 6

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

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

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

$config['base_url'] = '';

Ответ 7

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

Ответ 8

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


Маршруты

$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 {
       ...
       }

Больше не должно быть больше проблем с случаями:)

Ответ 9

Пожалуйста, проверьте файлы папки root/application/core/, независимо от того, использовали ли вы файлы MY_Loader.php, MY_Parser.php или MY_Router.php.

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

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

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

Ответ 10

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

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

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