Как мне настроить перенаправления для мультисайтового приложения Codeigniter?

У меня есть несколько сайтов codeigniter, настроенных так:

  1. /CI_Site1
  2. /CI_сайт1/CI_сайт2
  3. /CI_сайт1/CI_сайт3

Прямо сейчас, чтобы использовать мой второй и третий сайт, я должен сделать это так:

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?

Проверьте это codeigniter.com/user_guide/general/…

Rejoanul Alam 20.02.2019 09:16

@RejoanulAlam Спасибо, но мне это не помогает. Это ничего не говорит мне о многосайтовых настройках.

Ayaskant Mishra 20.02.2019 09:28

я даже не понимаю вашего вопроса - у вас есть один домен, но несколько сайтов?

sintakonte 20.02.2019 11:25

@sintakonte несколько проектов CI в подпапках. domain.com,domain.com/site1,domain.com/site2 — это 3 разных проекта CI. NVM, моя проблема решена.

Ayaskant Mishra 22.02.2019 10:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
51
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы пробовали использовать маршруты?

$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 решило мою проблему.

Другие вопросы по теме