У меня есть несколько сайтов codeigniter, настроенных так:
Прямо сейчас, чтобы использовать мой второй и третий сайт, я должен сделать это так:
mydomain.com/CI_Site2/index.php/контроллер/функция
Если я не добавлю index.php, он выдаст ошибку 404 на корневом сайте (AKA CI_Site1).
Как мне настроить htaccess или apache site conf или файлы конфигурации CI, чтобы мне не нужно было добавлять index.php?
Я думаю, что первым шагом должна быть настройка маршрутов в CI_site1, чтобы не обрабатывать запросы для двух других, но я не знаю, как это сделать. Я надеюсь, что профессионал Codeigniter может мне помочь.
Заранее спасибо.
Обновлено: Я знаю, как удалить index.php из URL-адресов с помощью htaccess. Но дело не в этом. Как запретить CI_site1 обрабатывать запросы, предназначенные для CI_site2 и CI_site3?
@RejoanulAlam Спасибо, но мне это не помогает. Это ничего не говорит мне о многосайтовых настройках.
я даже не понимаю вашего вопроса - у вас есть один домен, но несколько сайтов?
@sintakonte несколько проектов CI в подпапках. domain.com,domain.com/site1,domain.com/site2 — это 3 разных проекта CI. NVM, моя проблема решена.






Вы пробовали использовать маршруты?
$route['CI_Site1'] = '/CI_Site1';
$route['CI_Site2'] = '/CI_site1/CI_Site2';
$route['CI_Site3'] = '/CI_site1/CI_Site3';
Просто добавьте приведенный ниже код в файл и сохраните его как .htaccess, а затем загрузите его в папку проекта.
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
Убедитесь, что ваш сервер mod_rewrite включен.
Я понял, что никакой дополнительной настройки не требуется. Достаточно использовать .htaccess для удаления index.php. Моя проблема заключалась в том, что apache блокировал файлы .htaccess в конфигурации по умолчанию. Редактирование apache2.conf для обработки файлов htaccess решило мою проблему.
Проверьте это codeigniter.com/user_guide/general/…