Разработка суб-сайтов (микро-сайтов) в 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";
Надеюсь, я объяснил это достаточно для того, чтобы вы начали свой проект!