Разработка суб-сайтов (микро-сайтов) в 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

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

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

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

http://mysite.dev/ {module} / {controller} / {action} / {params}

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

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

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

http://mysite.dev/ {microsite} / {module} / {controller} / {action} / {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";

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

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