Я знаю, что об этом уже спрашивали, но я все перепробовал, и все равно ничего не получится. Может быть, это связано с новой версией CodeIgniter 3?
Моя файловая структура выглядит так:
blue(public_html)
--index.php
--.htaccess
code_igniter
--application
--system
.htaccess
файл:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Любая помощь будет оценена.
Предполагая, что вы используете Apache в качестве веб-сервера с включенным ModRewrite, есть несколько вещей, которые вы должны правильно настроить в CodeIgniter:
1. правильно написано .htaccess
2. Действительный application/config/config.php
файл
3. Действительный index.php
файл.
Давай пройдемся по одному.
.htaccess
конфигурацияВ вашем примере вы пропускаете RewriteBase
декларация. Вам нужно добавить это объявление с абсолютным путем к общедоступному каталогу. Это .htaccess
файл в базе публичного каталога.
RewriteEngine on
RewriteBase /absolute/path/to/blue(public_html)/
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
config.php
конфигурацияВ application/config/config.php
Вы должны убедиться, что вы установили свой base_url
а также index_page
варианты правильно. Удалять index.php
из URL, вы должны установить index_page
вариант пустым.
/*
|---------------------------------------------------------------
| Base Site URL
|---------------------------------------------------------------
*/
$config['base_url'] = 'localhost/blue';
/*
|---------------------------------------------------------------
| Index File
|---------------------------------------------------------------
*/
$config['index_page'] = ''; // <-- note that this is empty!
index.php
конфигурацияВаш index.php
Конфигурационный файл находится в корне общедоступного каталога. Здесь вам нужно установить абсолютные пути к вашему приложению и системным папкам.
/*
*---------------------------------------------------------------
* SYSTEM FOLDER NAME
*---------------------------------------------------------------
...
*/
$system_path = '/absolute/path/to/code_igniter/system';
/*
*---------------------------------------------------------------
* APPLICATION FOLDER NAME
*---------------------------------------------------------------
...
*/
$application_folder = '/absolute/path/to/code_igniter/application';
Как только вы исправите эти три вещи в CI, вы сможете локальный / синий без index.php
в URL.
Других решений пока нет …