Есть проблема с 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;
Как сказано в комментариях: имя файла вашего контроллера должно начинаться с заглавной буквы. В вашем случае Main.php.
Увидеть http://codeigniter.com/userguide3/changelog.html
«Изменено соглашение об именах файлов (имена файлов классов теперь должны быть Ucfirst, а все остальное — строчными). »
Попробуйте изменить function index()
в общественного.
Если это не работает, попробуйте добавить в URL: domain.com/index.php /главный
и посмотрим, что получится. Иногда вам нужен .htaccess на другом сервере, чтобы удалить index.php.
Я застрял с этой проблемой.
Я исправил это, просто заменив путь.
здесь папка «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».
В 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, а также.
Вам просто нужно установить контроллер по умолчанию в application/config/routes.php
лайк
$route['default_controller'] = $this->set_directory('front/home/').'home/index';
для Ci 3.x