как сделать мультисайт с одним приложением codeigniter?

Я пытаюсь разработать систему покупок с помощью codeigniter.

Я разрабатываю back-end и front-end моей торговой системы.

Но моя проблема в том, что я хочу использовать этот код для многих магазинов.

Например, мой основной адрес — shop.com.

Я хочу, чтобы люди могли иметь свой собственный магазин в моей системе со своей собственной подпапкой, например: shop.com/shop1 | shop.com/shop2 и ...

Я хочу, чтобы подпапка пользователей была помещена вне папки приложения.

Мой список каталогов выглядит следующим образом:

shop.com
-application
--cache
--config
--controllers   
--core
--helpers
--...(other application contents)
-assets
-attachments
-system
-shop1
-shop2
& ...

Я делаю все детали для магазина, и все в порядке, когда я звоню в магазин.

Теперь я хочу сделать shop1 с определенной подпапкой и базой данных.

Я могу сделать отдельную базу данных для каждого магазина и подключить код к его собственной базе данных. после этого я звоню на shop.com/shop1, и главная страница загружается как по маслу.

Но когда я звоню контроллерам магазина (пример: shop.com/shop1/checkout), я получаю ошибку 404.

И в конце я заметил два момента:

1- Я использую исходный корневой код codeigniter index.php в качестве моего shop1/index.php

2- я меняю $system_path на ../system и $application_folder на ../application

Похоже, что codeigniter не может правильно определить местонахождение контроллеров.

Что я могу сделать для решения этой проблемы?


person saeed    schedule 04.02.2019    source источник
comment
shop.com/shop1/checkout (домен/контроллер/функция) выдает ошибку 404, потому что shop1 (контроллер) не существует. исследуйте использование поддоменов, таких как shop1.shop.com/controller/function/id   -  person Vickel    schedule 05.02.2019
comment
Я ценю вашу помощь, но по некоторым причинам я хочу сделать это с подпапкой. @Викель   -  person saeed    schedule 06.02.2019
comment
Добро пожаловать, в любом случае, по моему опыту, следует рассмотреть подход с субдоменами, особенно если вы хотите продать свой сайт позже другим владельцам магазинов. Также это позволит вам создавать разные базы данных, даже на общем сервере, намного проще.   -  person Vickel    schedule 06.02.2019


Ответы (1)


Вы имеете в виду ХМВК?

  1. Загрузите файлы и скопируйте файл C.i.3.0 в приложение: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/downloads
  2. Создайте и скопируйте вставку в .htaccess

    RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]

3. Создайте папку с именем «модули» в приложении/ 4. Создайте папку с именем «папка» в приложении/модулях 4. Создайте папку с именем «контроллеры, модели, представления» в приложении/модулях/папке 5. Создайте имя файла с таким же именем папка» в приложении/модулях/папке/контроллерах

для ошибки вставьте это в MX/Loder.php

return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_prepare_view_vars($vars), '_ci_return' => $return));
person xwzscE    schedule 06.02.2019
comment
Спасибо, мой друг. @wazowski - person saeed; 06.02.2019
comment
Я внедрил систему магазина с HMVC с первого дня. Согласно моему первому сообщению, мне нужно использовать подпапку для любого экземпляра магазина, то есть эта подпапка будет адресом нового магазина, например: shop.com/shop1, shop.com/shop2. Все эти подпапки (магазины) используют весь код и модули в качестве движка. @вазовски - person saeed; 06.02.2019