Mehrere Domains - ein Joomla!
Aus Joomla! Dokumentation
Ausgangslage
Eine Joomla!-Installation soll das Frontend für drei Firmen/Domains mit unterschiedlichem Inhalt und Layout verwalten.
Für jede Firma wurde ein eigener Bereich eingerichtet und ein eigenes Template entworfen. Die Templates wurden dem jeweiligen Menü der Firma zugewiesen:
- Firma 1 - firma1.de -
DeinJoomla!\templates\firma1 - Startseite ist Id 1
- Firma 2 - firma2.de -
DeinJoomla!\templates\firma2 - Home der Firma 2 ist Id 20
- Firma 3 - firma3.de -
DeinJoomla!\templates\firma3 - Home der Firma 3 ist Id 30
Lösung 1: Drei Unterverzeichnisse mit je einer
index.html
Die Verzeichnisse
DeinJoomla!\firma1,
DeinJoomla!\firma2 und
DeinJoomla!\firma3 erstellen.
In jedem Verzeichnis eine index.html erstellen, die außer dem Head mit den Meta-Tags und einen leeren body-Bereich nichts enthalten muss. Dem Link des Menü-Items kann dann der Code für die Weiterleitung entnommen werden.
Für die Firma 1 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma1.de/index.php?option=com_content&view=article&id=1">Für die Firma 2 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma2.de/index.php?option=com_content&view=category&layout=blog&id=4">Für die Firma 3 könnte das z.B. sein:
<meta http-equiv="Refresh" content="0; URL=http://firma3.de/index.php?option=index.php?Itemid=11">Lösung 2: Plugin Multidomain
Gefunden http://www.joomlaportal.de/beta-howtos/58249-joomla-multi-domain-f-hig-21.html
Eine
multidomain.php erstellen:
/* SVN: $Id$ */ /** * @package joomla.plugin * @subpackage system.multidomain * @copyright Copyright (c) 2008 art-two [creative development] * @author Guido Essing [ecomeback] <ecomeback@os-development.de> * @version * 0.1 - 04.01.2009 - pre alpha<br /> */ // check global access point defined('_JEXEC') or exit( 'forbidden' ); $mainframe->registerEvent( 'onAfterInitialise', 'plgSystemMultiDomain' ); /** * MultiDomain Switcher * @return void */ function plgSystemMultiDomain() { $application =& JFactory::getApplication(); // frontend check if (!$application->isSite()) { return true; } $config = JFactory::getConfig(); $uri = JFactory::getURI(); $menu = JSite::getMenu(); //echo 'URI:'.$uri->getHost(); switch(strtolower($uri->getHost())) { case "firma1.de"; // set default menu id - home $menu->setDefault(1); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template // firma1 heißt das Verzeichnis, das das Templates für firma1.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma1'); break; case "www.firma1.de"; // set default menu id - home $menu->setDefault(1); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template // firma1 heißt das Verzeichnis, das das Templates für firma1.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma1'); break; case "firma2.de"; // set default menu id - home $menu->setDefault(20); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma2.de'); // set template // firma2 heißt das Verzeichnis, das das Templates für firma2.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma2'); break; case "www.firma2.de"; // set default menu id - home $menu->setDefault(20); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma2.de'); // set template // firma2 heißt das Verzeichnis, das das Templates für firma2.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma2'); break; case "firma3.de"; // set default menu id - home $menu->setDefault(30); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma3.de'); // set template // firma3 heißt das Verzeichnis, das das Templates für firma3.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma3'); break; case "www.firma3.de"; // set default menu id - home $menu->setDefault(30); // Menü-Id, die aufgerufen werden soll // set live site $config->setValue('config.live_site', 'http://www.firma3.de'); // set template // firma3 heißt das Verzeichnis, das das Templates für firma3.de beinhaltet, // ist also nicht der Name des Templates aus dem Template-Manager. JRequest::setVar('template', 'firma3'); break; default: // set default menu id - home $menu->setDefault(1); // id have to exists in #__menu // set live site $config->setValue('config.live_site', 'http://firma1.de'); // set template JRequest::setVar('template', 'firma1'); break; } } ?>
Eine
multidomain.xml erstellen:
<?xml version="1.0" encoding="utf-8"?> <install version="1.5" type="plugin" group="system"> <name>System - MultiDomain</name> <author>Guido Essing [ecomeback]</author> <creationDate>January 2009</creationDate> <copyright>(c) 2009 - art-two [creative development]</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <authorEmail>development@art-two.de</authorEmail> <authorUrl>www.art-two.de</authorUrl> <version>0.1</version> <description><![CDATA[MultiDomain Plugin]]></description> <files> <filename plugin="multidomain">multidomain.php</filename> </files> <params/> </install>
Diese zwei Dateien in das Verzeichnis
\DeinJoomla!\plugins\system stellen.
