CI новый контроллер по умолчанию не работает

Есть проблема с CI 3.0
если я оставляю контроллер по умолчанию в файле rout.php «добро пожаловать», все работает отлично.
НО, если я изменю это, то есть «главный» CI начинает выдавать ошибку 404
Главный контроллер для первых шагов такой же, как и приветствуется. Я просто скопировал файлы. переименовал, изменил имя класса (конечно), и в index() загрузка просмотра.
какие-либо предложения?

также я забыл сказать
на wamp localhost все работает .. но на сервере НЕ ..: /

И еще кое-что…
то есть, если я попытаюсь перейти на mydomain.com/welcome — работает,
если я попытаюсь перейти на mydomain.com/main — НЕТ.
даже если я изменяю маршруты по умолчанию контроллер обратно, чтобы приветствовать

Мой файл main.php:

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

class Main extends CI_Controller {
function index(){
$this->load->view('welcome_message');
}
}

мой файл rout.php:

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

0

Решение

Как сказано в комментариях: имя файла вашего контроллера должно начинаться с заглавной буквы. В вашем случае Main.php.
Увидеть http://codeigniter.com/userguide3/changelog.html

«Изменено соглашение об именах файлов (имена файлов классов теперь должны быть Ucfirst, а все остальное — строчными). »

5

Другие решения

Попробуйте изменить function index() в общественного.
Если это не работает, попробуйте добавить в URL: domain.com/index.php /главный
и посмотрим, что получится. Иногда вам нужен .htaccess на другом сервере, чтобы удалить index.php.

0

Я застрял с этой проблемой.
Я исправил это, просто заменив путь.
здесь папка «site» используется по умолчанию, если вы хотите использовать CI, вы должны сохранить весь свой код в папке «site». если вы не использовали папку сайта для установки, она не будет работать с несколькими настройками контроллера.
следовательно вы получаете контроллер по умолчанию в качестве работоспособного, а остальные другие появились 404.

измените файл .htacess в вашем корневом каталоге.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ /site/index.php/$1 [L]
RewriteRule ^(.*)$ /codeig/index.php/$1 [L]
</IfModule>

выше вы можете видеть, что есть
RewriteRule ^(.*)$ /codeig/index.php/$1 [L]
изменена строка для корневой папки «codeig».

0

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

В system / core / Router.php измените строку (около 303)

if (! file_exists (APPPATH.’controllers /’.$ this-> directory.ucfirst ($ class). ‘. php’))
в
if (! file_exists (APPPATH.’controllers /’.$ class. ‘. php’))

Мне пришлось удалить вещи в CodeIgniter.php и Loader.php, а также.

0

Вам просто нужно установить контроллер по умолчанию в application/config/routes.php лайк

$route['default_controller'] = $this->set_directory('front/home/').'home/index';

для Ci 3.x

0
По вопросам рекламы [email protected]