Идеи по размещению нескольких сайтов на одной cms Joomla(многосайтовость)

При подходе к реализации задачи создания многосайтовости на одном экземпляре CMS Joomla следует понимать, что роутинг в данной CMS базируется на меню. Поэтому подходы к реализации задачи как правило строятся вокруг переопределения логики работы компонента меню, в некоторых случаях так же работы роутинга. Но как правило второе не реализуют, поскольку такой подход может усложнить работу с материалами, их отображениям на сайтах разных регионов, а в особенности в вопросе расширения функционала сайта(то есть написании чего “то не коробочного”, и требующего при этом учёта работы реализованного многосайтового режима). Кроме того какого либо стандартного подхода у Joomla к многосайтовости в особенности с изменённым роутингом нет, при этом различные подходы к реализации встречаются в интернете в том числе с применением специально написанных для этого целей компонентов(не было практического опыта работы с такими, в целом при подходе к реализации считаю что тем не менее следует посмотреть готовые решения, и возможно скорректировать подходы предлагаемые в этом документе. Помню что логика работы какого то такого компонента построена на установке соответствующих галочек в компоненте меню - к какой именно версии сайта относится элемент).

Что на практике означает, реализация только изменения логики работы меню без изменений в роутинге, рассмотрим следующий пример.

Есть 2 сайта водоканала: город Иваново и город Шуя. У обоих есть страница вакансии /vakansii

Стандартная Joomla не учитывает в роутинге адрес субдомена, например shuya.основной-домен.ru

Таким образом контент shuya.основной-домен.ru/vakansii не может быть отличным от основной-домен.ru/vakansii и потребуется для Шуи иной алиас, например /vakansii-shuya

Последний подход создаст страницу а аналогичным контентом и на основном домене(хотя и без проставленной соответствующей ссылки в меню, что по идее не должно давать повода поисковым роботам индексировать страницы). Подавлением такого поведения, может быть реализовано переопределением работы меню или материала, что в результате позволит отобразить страницу 404 для неверных адресов.

Тем не менее есть возможности по реализации одного url с разным контентом. Например сделать в материале несколько полей(типа HTML) и предложить заполнить контент для разных городов в одном материале. Далее на уровне логики компонента в зависимости от серверной переменной содержащей HOST или переменной в сессии определять какой именно сайт открыт и выводить контент именно для него. Такой подход не подойдет если количество городов для которых нужен сайт будет увеличиваться, из за отображения множества полей при создании или редактировании материала. Разумеется можно сделать связь 1 - многие, то есть создать доп таблицу с контентом материалов для отдельных сайтов, и если записи относящейся к материалу не найдены, то не отображать их в админке. Но это не вся проблема, поскольку есть ещё и SEO поля, которые так же у материалов сайта могут отличаться(например description вакансий для Шуи должен быть для этого когода а не от аналогичного материала для Иваново), поэтому SEO поля так же потребуют создания отдельных таблиц с связью 1 - многие для их хранения. По идее такой подход может быть даже удобным для использования(если опять же не будет чрезмерного количества городов, куча материалов которых будет открываться на одной административной странице для редактирования а затем ещё и сохранять изменения во все поля сразу, а не только изменённые), потребуется реализовать на административном интерфейсе возможность добавления ещё одного материала для города, чтобы не отображать пустые. При всём этом по времени на реализацию такой вариант займет больше чем многие другие приведённые в текущем документе.

Другой вариант использования разных материалов на одном URi(обращу внимание что речь именно про Uri а не UrL, поскольку хосты отличаются, но хосты как уже отметил не влияют в joomla на стандартный роутинг) это создание нескольких баз данных(по количеству сайтов) с использованием единых php файлов.

Такой вариант на деле может оказаться одним из наиболее удобных. Поскольку на деле, если окажется что у сайта не так много одинаковых страниц то имеем следующее:

Комментарии

Если у Вас возникли вопросы, Вы можете задать их в форме ниже. В частности если Ваш вопрос по Bitrix и что то не получается - можно спросить. Ваш e-mail не публикуется, при этом я отвечу на него если будет что то по теме. Писать необходимо для людей - избегайте сленга, пишите орфографически правильно.

Имя:
E-mail:
Текст комментария:

Вы так же можете прочитать следующие статьи: