2014-02-03 5 views
1

это убивает меняHMVC codeigniter работает на локальном сервере, но не на веб-сервере

что у меня? CI версия: 2.1.4 Модульные Extensions - HMVC по wiredesignz проект, основной CodeIgniter (HMVC), который отлично работает с установкой он имеет в локальном сервере (MAMP) с PHP 5.5.3

моя проблема после того как я переместите проект на общедоступный веб-сервер, я изменил следующее. --application/config/config.php

$ config ['base_url'] = 'http://example.com/';

--application/конфигурации/database.php

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'newdbusername'; 
$db['default']['password'] = 'newdbpassword'; 
$db['default']['database'] = 'newdbname'; 

--public_html/.htaccess

RewriteEngine On 
RewriteBase/

#Removes access to the system folder by users. 
#Additionally this will allow you to create a System.php controller, 
#previously this would not have been possible. 
#'system' can be replaced if you have renamed your system folder. 
RewriteCond %{REQUEST_URI} ^system.* 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

#When your application folder isn't in the system folder 
#This snippet prevents user access to the application folder 
#Submitted by: Fabdrol 
#Rename 'application' to your applications folder name. 
RewriteCond %{REQUEST_URI} ^application.* 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

#Checks to 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L]  
# 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 

, поскольку моя страница индекса будет индексная функция модуля 'дома', у меня есть не трогайте файл routes.php в папке application/config. Ниже настройки для routes.php

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

ПРОБЛЕМА всякий раз, когда пытаются получить доступ к http://example.com/ я получаю сообщение ниже

404 Страница не найдена Запрашиваемая Вами страница не найдена.

я получаю такое же сообщение, если я попробовать example.com/home но example.com/welcome все еще дает добро пожаловать на CodeIgniter страницу

ЧТО ПРОИСХОДИТ !!! ??? Почему я не могу получить доступ к какой-либо моей странице из модулей? что я пропустил ??? Кто-нибудь еще справляется с этой проблемой?

пс: мой Cpanel имеет PHP 5.3.27, если это помогает

Update :: ниже индексная функция моего контроллера по умолчанию в

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Home extends MX_Controller 
{ 

function __construct() { 
parent::__construct(); 
} 
function index() 
{ 
    $this->load->library('recaptcha'); 
    $data['recaptcha_html'] = $this->recaptcha->recaptcha_get_html(); 
    $data['view_file'] = "checkmember"; 
    $this->load->module('templates'); 
    $this->templates->checkinfo(); 
} 

============

ОБНОВЛЕНИЕ 2

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Welcome extends CI_Controller { 

    /** 
    * Index Page for this controller. 
    * 
    * Maps to the following URL 
    *  http://example.com/index.php/welcome 
    * - or - 
    *  http://example.com/index.php/welcome/index 
    * - or - 
    * Since this controller is set as the default controller in 
    * config/routes.php, it's displayed at http://example.com/ 
    * 
    * So any other public methods not prefixed with an underscore will 
    * map to /index.php/welcome/<method_name> 
    * @see http://codeigniter.com/user_guide/general/urls.html 
    */ 
    public function index() 
    { 
     $this->load->view('welcome_message'); 
    } 
} 

/* End of file welcome.php */ 
/* Location: ./application/controllers/welcome.php */ 
+0

Отсутствует цитатой на newdbpassword. – Shomz

+0

я пропустил, чтобы поставить цитату здесь ... в фактическом файле есть открывающие и закрывающие цитаты – ashish

+0

@Shomz есть ли у вас какие-нибудь идеи, что происходит с моей проблемой? – ashish

ответ

1

Наконец проблема была решена. Это была моя папка в папке модулей.

-модулями/

-----/дом

--------/Контроллеры ---> home.php

------- -/Модели ---> mdl_home.php

--------/Views ---> viewfile.php

Все, что мне нужно было сделать, это изменить капитализацию на папках «Контроллеры», «Модели» и «Представления», и я вернулся в бизнес.

теперь структура папок, как это и его прекрасно работает

-модулями/

-----/дом

--------/контроллеры --- > home.php

--------/модели ---> mdl_home.php

--------/просмотров ---> viewfile.php

Ashish

+0

У меня тоже такая же проблема, и имя моей папки внутри модуля уже в нижнем регистре, что может быть проблемой, моя локальная машина - это окна, а производство - Linux. Он также не работает на моем macbook. Это означает, что существует некоторая ошибка в соглашении об именах, которое работает на Windows, а не на mac/linux. –

+0

. Имя папки вашего модуля и имя файла контроллера должны быть в одном и том же случае (верхнем или нижнем), если они уже проверяют ваши вызовы делают через url в том же случае, что и ваши файлы. –

7

я понял, что проблема была не с HMVC но с CodeIgniter версии 3.0. Когда дело доходит до unix (которая была операционной системой, запущенной на моем сервере), она чувствительна к регистру. Поэтому, когда я попытался получить доступ к контроллеру, он не смог найти файл из-за чувствительности к регистру и 404 выскочил каждый раз.

Моя структура папок, прежде чем что-то вроде:

-application 
-->modules 
--->users 
---->controllers 
----->users.php 

И ссылку на которую я получал 404 был www.example.com/users/login

где «пользователи» в связи является имя контроллера в папке «контроллеры» в папке «modules» в моем случае с именем users.php и «login» - это функция внутри контроллера.

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

-application 
-->modules 
--->Users 
---->controllers 
----->Users.php 

примечание: капитализированный «U» в модуле «Пользователи» и «Контроллер пользователей».

И URL-адрес я использовал для доступа к контроллеру пользователей было: www.example.com/Users/login

И я был хорошо идти.

0

У меня была та же проблема. Когда я переименовал папки «Контроллеры» и «Представления» в нижний регистр, он сработал. Linux debian.

enter image description here

+0

Я использую CodeIgniter 3.0.6 (Celio) – Celio

0

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

-modules 
---/login 
-----/controllers 
---------/Login.php 
-----/models 
---------/Login_model.php 
-----/views 
---------/login.php 

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

  • Нет связанных вопросов^_^