Псевдо мултисайт в различни домейни
Технически са възможни (но не се препоръчват за използване)псевдо-многосайтовиварианти, реализирани външно като на различни домейни, но всъщност обслужвани от единApacheсървър. Когато използвате тази функция, е невъзможно да се разделят данните по сайтове в административната част: форуми, блогове, пощенски списъци и т.н. ще се показват заедно.
Първи вариант
Multisite се реализира в този случай поради кода на индексната страница на основния сайт.
Настройка на Apache сървър
Сървърът е конфигуриран по същия начин като настройките за няколко сайта в един домейн.
Настройки на сайта
Настройките на сайта се извършват подобно на настройките за множество сайтове в един домейн, с единствената разлика, че в полетоИме на домейнна всеки сайт, вие посочвате свои собствени имена на домейни за всеки сайт.
Настройка на индексната страница
При решаването на този проблем могат да се използват следните функции на класа CMainPage:
- CMainPage::GetSiteByHost - връщаIDна сайта, идентифицирайки го чрез текущотоиме на домейн.
- CMainPage::GetSiteByAcceptLanguage - връщаIDна сайта, идентифицирайки го чрез променливата Accept-Language в настройките на браузъра на потребителя.
- CMainPage::GetIncludeSitePage - връщаабсолютен пътдо индексната страница на папката на посочения сайт, за по-нататъшното му свързване.
- CMainPage::RedirectToSite - пренасочва къминдексната страницана папката на посочения сайт.
когато сайтът се определя от текущото име на домейн:
Този примерен код определя името на домейна, от което идва посетителят, като използва функциятаCMainPage::GetSiteByHost, проверява това име на домейн с имената, посочени в настройките на сайта в полетоДомейнnameза определяне наIDна сайта и включва индексната страница от папката на съответния сайт в тялото на документа с помощта на функциятаCMainPage::GetIncludeSitePage.
когато сайтът се определя от езиците, инсталирани в браузъра на посетителя:
В този пример с код функциятаCMainPage::GetSiteByAcceptLanguageпроверява кои езици са зададени в настройките на браузъра на посетителя, сравнява сIDна езика на сайта и връща най-подходящия сайт.
когато един от сайтовете се намира в корена, останалите са в папки, но хостовете на сайтовете са едни и същи:
В нашия пример, ако сайтът "по подразбиране" (от настройките на сайта) е /s2, тогава ще бъде извикана неговата индексна страница.
Ако вашите сайтове всъщност са различни международни езикови огледала, тогава можете да използвате опцията за определяне на сайта по езиците, инсталирани в браузъра на посетителя.
Втори вариант
Ако домейните и дизайнът на двата сайта са различни и се използва една база данни за двата сайта (настройките на магазина и т.н. също са еднакви), можете да използвате тази опция. Лицензът за втория обект не е използван.
- Отидете наНастройки на сайта( Работен плот > Настройки > Настройки на продукта > Сайтове > Списък на сайтове )
- Задайте първия шаблон наТип условие= PHP израз. В условието напишете:
- Задайте втория шаблон наТип условие= PHP израз. В условието напишете:
- В полетоИме на домейн: (списък с имена на домейни, всяко на нов ред)- въведете двата домейна.
Сървърът е конфигуриран по същия начин като настройките за няколко сайта в един домейн.