Разработка суб-сайтов (микро-сайтов) в Codeignitter

Допустим, у меня есть сайт под названием http://mysite.dev

Что я имею:

Так что URL-адреса некоторых страниц будут ниже.

Домашняя страница: http://mysite.dev или же http://mysite.dev/site/index или же http://mysite.dev/home
(сайт / индекс был перенаправлен на дом)

Редактировать профиль: http://mysite.dev/user/edit или же http://mysite.dev/edit-profile
(пользователь / правка была перенаправлена ​​в правку профиля)

Панель администратора: http://mysite.dev/admin/ или же http://mysite.dev/admin/index

Admin Просмотр пользователей: http://mysite.dev/admin/users или же http://mysite.dev/admin/users/index

Администратор Редактировать пользователя: http://mysite.dev/admin/users/edit/1

Итак, в основном мой шаблон URL, как показано ниже.

http://mysite.dev/{Модуль} / {контроллер} / {действие} / {PARAMS}

Что мне нужно:

При сохранении основного сайта, как указано выше, мне нужны вспомогательные веб-сайты (микро-сайты), которые будут иметь одинаковый логин на основном сайте.

Таким образом, шаблон URL будет таким, как показано ниже.

http://mysite.dev/{Микросайт} / {модуль} / {контроллер} / {действие} / {PARAMS}

(«Микросайт пуст» означает, что он является основным веб-сайтом. Не будет никакого каталога, представляющего микросайт, поскольку это просто ссылка в качестве имени.)

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

Что мне нужно знать:

Как я могу реализовать этот шаблон URL, используя .htaccess или URL маршрутизации для разработки этого динамического микросайта.

Спасибо!

-1

Решение

Хорошо, я думаю, что у меня есть голова вокруг этого!

Во-первых, вам нужно организовать основной сайт и каждый микросайт в свои собственные подкаталоги (для контроллеров, моделей, видов и т. Д.), Например:

application/controllers/main_site/module/etc
application/controllers/micro_one/module/etc
application/controllers/micro_two/module/etc

Затем внутри папки маршрутов вы сделаете что-то похожее на следующий псевдокод:

Create array of microsite names (maybe get these from database)

Get the first URI segment

If URI segment is in microsites array
$route['home'] = "{uri_segment/microsite_name}/module/controller";
else
$route['home'] = "main_site/module/controller";

Так, например, ваш массив микросайтов может быть:

array('micro_one', 'micro_two')

Тогда URL http://mysite.dev/micro_one/home будет направлять в

$route['home'] = "micro_one/home/index";

Я надеюсь, что я объяснил это достаточно для того, чтобы вы начали свой проект!

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector