Проблемы с хостингом с CodeIgniter

#codeigniter #live #bluehost

#codeigniter #ЖИВЫЕ КОНЦЕРТЫ #bluehost

Вопрос:

Я новичок в CI. Все это время я занимался своими недавними проектами на своем локальном хостинге. Я выбрал CodeIgniter и Doctrine в качестве своей базы данных.

Мои спецификации локального хостинга следующие:

Windows 7 Wampserver 2.0

У меня также включен rewrite_module в моем apache.

С самого начала все работало нормально с CI и Doctrine на моем локальном хостинге. Мне удалось завершить свой проект, и я с радостью ждал, когда смогу перенести свой первый проект в режиме реального времени и загрузить его в подкаталог моей учетной записи bluehost.

Перед передачей файлов я изменил config.php и database.php путем заполнения требуемых значений.

Но после того, как я загрузил свои файлы (вместе с .htaccess) своему поставщику хостинг-решений, я не смог увидеть ничего, кроме ошибки 404 (это из класса codeigniter, а не с моей страницы решений для хостинга). Я продолжаю получать это. Я перепробовал несколько вариантов, но я не могу понять, что это все значит. Я уверен, что index.php вызывается, и когда он пытается выполнить маршрутизацию к контроллеру по умолчанию (который в моем случае является «домашним»), по какой-то причине происходит сбой.

Структура каталогов на моем локальном хостинге

PathtoWamp-> www-> mysitefolder

Структура каталогов на моем живом сайте

public_html (это моя корневая папка)-> mysitefolder

Я также мог видеть, что rewrite_module был включен на моем реальном сервере (так говорит мое решение для хостинга bluehost, и я предполагаю, что это правда)

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

Заранее спасибо.

С уважением, Ашок Шринивасан.

Ответ №1:

Я выяснил корень проблемы. Все это время это был не .htaccess, не httpd.conf и не bluehost, это был не бог, не кто-либо другой, но настоящим виновником был мистер CodeIgniter.

Если вы посмотрите на Router.php находится внутри system / libraries, тогда вы найдете строку под номером 88, где

 $this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : strtolower($this->routes['default_controller']);
  

если вы заметили, что в конце троичного файла они принудительно выполняют операцию strtolower над именем контроллера. Я удалил этот метод и просто позволил использовать исходное имя на этом этапе, изменив строку на this .

 $this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : $this->routes['default_controller'];
  

Хорошо, но что здесь такого особенного? Да, сейчас это имеет большой смысл. На моем локальном сервере был установлен wamp в Windows, а мой рабочий сервер был размещен на Unix-сервере. Поскольку очень хорошо известно, что Windows — мягкий парень, который не сильно беспокоится о чувствительности к регистру, в то время как Unix, наоборот, очень разборчив.

Все имена контроллеров в моем проекте были написаны с заглавной буквы, отсюда возникла реальная проблема. Также я зашел в свой routes.php лежит в приложении / конфигурации, где я исправил проблемы с этой точки зрения.

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

С уважением,

Ашок Шринивасан.

Комментарии:

1. я не смог найти этот файл в своей системе codeingiter / библиотеки / Routerphp

Ответ №2:

У меня была такая же проблема в вашем httpd.conf

вам нужно найти строку, подобную этой

 <Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>
  

Измените его на

 <Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>
  

Это все, что мне потребовалось

Комментарии:

1. Боюсь, я не смогу отредактировать httpd.conf. Поскольку это общий хостинг, похоже, мне не предоставлен к нему доступ. Но все равно попробую это сделать, обратившись в службу поддержки. Тем временем большое спасибо austinbv за это.

2. Я даже пытался удалить .htaccess в моем корневом каталоге (public_html), а также .htaccess внутри подкаталога, где размещен сайт моего проекта. Но безуспешно. Эта штука просто сводит меня с ума. Или я что-то здесь упускаю. Даже после удаления этих двух файлов (.htaccess) я по-прежнему не вижу ничего, кроме страницы с ошибкой codeigniters 404 с некоторыми инструкциями echo, которые я написал внутри файла с ошибкой, чтобы подтвердить, что именно codeigniter выдает ошибку 404. Это что-то вроде того, что CodeIgniter не может загрузить свои контроллеры из-за неправильного сопоставления путей? Мой конфигурационный файл, безусловно, хорош