Как настроить перенаправления для многосайтового приложения Codeigniter? - PullRequest
0 голосов
/ 20 февраля 2019

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

  1. / CI_Site1
  2. / CI_site1 / CI_Site2
  3. / CI_site1 / CI_Site3

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

mydomain.com / CI_Site2 / index.php / controller / function

Если я не поместил index.php, то он вызовет 404 в корневом сайте (AKA CI_Site1).

Как настроить файлы конфигурации htaccess или apache site или CI так, чтобы я нене нужно добавлять index.php?

Я думаю, что первым шагом должно быть настроить маршруты в CI_site1, чтобы не обрабатывать запросы для других 2, но я не знаю как.Надеюсь, что Codeigniter pro может мне помочь.

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я знаю, как удалить index.php из URL с помощью htaccess.Но это не проблема здесь.Как запретить CI_site1 обрабатывать запросы, относящиеся к CI_site2 и CI_site3?

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Просто добавьте приведенный ниже код в файл и сохраните его как .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 включен.

0 голосов
/ 22 февраля 2019

Я понял, что никаких дополнительных настроек не требуется.Для удаления index.php достаточно использовать .htaccess.Моя проблема заключалась в том, что apache блокировал файлы .htaccess в конфигурации по умолчанию.Редактирование apache2.conf для разрешения обработки файлов htaccess решило мою проблему.

0 голосов
/ 20 февраля 2019

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

$route['CI_Site1'] = '/CI_Site1';
$route['CI_Site2'] = '/CI_site1/CI_Site2';
$route['CI_Site3'] = '/CI_site1/CI_Site3';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...