2016-11-21 2 views
0

Я много искал и тестировал несколько различных способов решения этой проблемы ... но пока ничего не получилось. Я только что загрузил веб-сайт на свой сервер, и после всех необходимых изменений он возвратил следующую ошибку - которую я никогда раньше не видел.Codeigniter 1.7.2 404 страница не найдена

This is the screen shot when I first uploaded the files online...

Ну, после некоторого тестирования и исследования, я изменил название моих контроллеров у капитализируются - и модели - и «PHP» часть страницы остановки показывая вверх.

Вот мой набор вверх:

FOLDER: сайт находится внутри папки/сайта/

application/ 
favicon/ 
system/ 
index.php 
.htaccess 
robots.txt 

CONTROLLER: Я проверил изменения в CI_Controller - несмотря на то, что я работающих на CI 1.7.2 - и __construct() ... не работает

class Home extends Controller 
{ 

    // SET LAYOUT DEFAULT 
    public $layout = 'default'; 

    // SET TITLE DEFAULT 
    public $title = ''; 

    // SET CSS DEFAULT 
    public $css = array('scripts/fancybox/jquery.fancybox'); 

    // SET JAVASCRIPT DEFAULT 
    public $js = array('scripts/fancybox/jquery.fancybox.pack'); 

    function Home() { 

     parent :: Controller(); 

     // LOAD Libraries 
     $this->load->library(array('createdate','minitextile','showimages')); 

     // LOAD Models 
     $this->load->model('site_model'); 
    } 

    function index() { 

     $data['website_info'] = $this->config->item('w_infos'); 
     // LOAD VIEWS 
     $this->load->view ('include/home_view', $data); 
    } 
} 

CONFIG - Я положил только essencial здесь ...

$config['base_url'] = "http://domain.com/site/"; 

$config['index_page'] = ""; 

$config['uri_protocol'] = "REQUEST_URI"; // Tested with AUTO, didn't work 

$config['enable_hooks'] = TRUE; 

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 

$config['enable_query_strings'] = FALSE; 
$config['controller_trigger'] = 'c'; 
$config['function_trigger']  = 'm'; 
$config['directory_trigger'] = 'd'; 

HTAccess - файлы основаны внутри папки/сайта/

<IfModule mod_rewrite.c> 

    RewriteEngine on 
    RewriteBase /site/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 

</IfModule> 

<IfModule !mod_rewrite.c> 
    # Without mod_rewrite, route 404's to the front controller 
    ErrorDocument 404 /index.php 
</IfModule> 

МАРШРУТЫ:

$route['default_controller'] = "home"; 

Мой журнал: Это после того, как названия контроллеров изменение

DEBUG - 2016-11-21 15:54:22 --> Config Class Initialized 
DEBUG - 2016-11-21 15:54:22 --> Hooks Class Initialized 
DEBUG - 2016-11-21 15:54:22 --> URI Class Initialized 
ERROR - 2016-11-21 15:54:22 --> 404 Page Not Found --> home 

Перед изменение названия (для колпачков) это было так:

DEBUG - 2016-11-21 14:08:28 --> Config Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> Hooks Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> URI Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> No URI present. Default controller set. 
DEBUG - 2016-11-21 14:08:28 --> Router Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> Output Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> Input Class Initialized 
DEBUG - 2016-11-21 14:08:28 --> Global POST and COOKIE data sanitized 
DEBUG - 2016-11-21 14:08:28 --> Language Class Initialized 
ERROR - 2016-11-21 14:08:28 --> 404 Page Not Found --> home/index 

Я знаю, что я новичок, и есть много поста на этот вопрос там ... Я только прошу, после того, как некоторые (многие) тестируют себя самостоятельно - по крайней мере, насколько я знаю: D Я использовал эту версию CI и настроил какое-то время - и имел в виду для обновления до CI 3 - и я протестировал/изменил все, что я мог себе представить, и столкнулся с множеством разных хостов/серверов, и все же я не мог найти способ обойти это.

ответ

1

Это может быть потому, что

function Home() { 

    parent :: Controller(); 

    // LOAD Libraries 
    $this->load->library(array('createdate','minitextile','showimages')); 

    // LOAD Models 
    $this->load->model('site_model'); 
} 

Должно быть http://www.codeigniter.com/user_guide/general/controllers.html#class-constructors

function __construct() { 

    parent::__construct(); 

    // LOAD Libraries 
    $this->load->library(array('createdate','minitextile','showimages')); 

    // LOAD Models 
    $this->load->model('site_model'); 
} 

Убедитесь, что ваши имена файлов исправить также при обновлении home.php только первая буква в верхнем регистре. как описано здесь

+0

Вы имеете в виду 'parent :: __ construct();', правильно? ;-) –

+0

@RocketHazmat Oops yep typo исправлено сейчас – user4419336

+0

Спасибо за советы! – ArtFranco

0

Выяснил это! Спасибо за помощь ... но это была проблема с настройкой PHP ... short_open_tag не был активирован на обслуживаемом ... и мне потребовалось некоторое время, чтобы это увидеть! : p So tip: Проверьте также некоторые настройки php.

Смежные вопросы