Multisite Joomla pro více domén

(Opensource / Redakční systém / Joomla)

Samozřejmě nejlepší postup je takový, kdy každá doména bude mít svou vlastní instalaci Joomla a databázi, avšak lze vytvořit speciální pravidla, díky kterým lze vytvořit multi-site v rámci jedné instalace.

Příklad použití.

Budete mít dvě malé oddělené firmy, ale s podobnými produkty. Bude Vám stačit jedna instalace Joomla z nichž každá firma bude mít svou vlastní domovskou stránku domena1.cz a domena2.cz, a obě budou nabízet podobné produkty. Navíc každá stránka bude vyžadovat svůj vlastní design, tedy rozdílnou šablonu pro každou doménu.

Výhody

Tím, že budete mít obě značky (firmy) pod jednou instalací, můžete ušetřit hodně času editací stránek, budete mít pouze jeden login, můžete sdílet články napříč stránkami, využívat jednotlivé funkce jako kontaktní formulář pro obě stránky.

Instalace a nastavení Joomly

Nainstalujte klasicky RS Joomla, viz zde. Vytvářejte články, menu a moduly pro každou stránku.

Vytvoření šablony.

Dále vytvořte a nainstalujte potřebné šablony – zvlášť pro každou doménu. Po instalaci šablony přiřadit příslušné položky menu pomocí Joomla Temlate Manager v administraci.

Přidat přesměrování

Možnost 1) Vytvořte .htaccess přesměrování

Poznámka: Povolte nejprve „hezká“ URL v Joomle

Jednou z možností je použití souboru .htaccess pro přesměrování požadavků na dané doméně pro konkrétní Joomla stránky. Naším cílem bude přesměrovat všechny dotazy na doménu domrna1.cz na Joomla stránku. Např. přesměrovat všechny požadavky na domena1.cz na kategorii blogu. Uvidíte tedy šablonu domény domena1.cz.

RewriteCond %{HTTP_HOST} ^(www\.)?domena1\.cz$ RewriteRule (.*) http://www.domena2.cz/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=12 [R=301,L]

Ano to funguje, ale můžete okamžitě vidět nevýhodu. V adresním řádku prohlížeče stále uvidíte název domena2.cz.

Možnost 2) Vytvořte přesměrování PHP Header

Toto řešení má tu výhodu udržet iluzi samostatných domén pro návštěvníky stránek. Namísto využití .htaccess se pro přesměrování využije některá ze šablon.

V tomto příkladu je základní doména domena1.cz. Vytvořili jste šablonu pro tuto část. Trik je v otevření souboru index.php této šablony a vložit jako první řádek tento kód:

<?php
$domain = $_SERVER["HTTP_HOST"];
$uri = $_SERVER["REQUEST_URI"];
$url = $domain . $uri;
 
if (($url == "domena1.cz/") ||
   ($url == "www.domena1.cz/")) { 
   header("Status: 301 Moved Permanently");
   header("Location: http://www.domena1.cz/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=12"); 
}
?>

Má to tu výhodu, že návštěvník je přesměrován na příslušnou stránku domény domena1.cz, pokud jste zadali dotaz na některou stránku domena1.cz. V opačném případě je PHP pravidlo ignorováno a zobrazí se domena2.cz

Je důležité zapamatovat požadavek pro každou URL (URL, která následuje za jménem domény), takže si můžete udělat přesměrování do stejné domény. Důležité je porovnávat čistý název domény s „/“ koncem na konci. Takto budete moci provádět 301 přesměrování ve stejné doméně. Jinak se bude vytvářet smyčka v přesměrování.

Možnost 3) - Vytvořte přesměrování PHP Header pro více domén se specifickým přesměrováním pro vlastní šablony

Jedná se o řešení pro jediný webový prostor s různými doménami, jednou instalací Joomly a v závislosti na načtené doméně, přesměrování na jinou výchozí stránku. Vložte následující kód na úplně první řádek do primárního souboru index.php. Chcete-li přidat další doménu, stačí zkopírovat a vložit funkci „if“ a upravit ji s jinými hodnotami. Pro zobrazení šablony, budete muset přiřadit jiný modul/link k aliasu a nastavit šablonu pomocí Joomla Template manager. Nastavení aliasu je nutné, pokud chcete používat „hezká“ URL.    

<?php
$domain = $_SERVER["SERVER_NAME"];
$requri = $_SERVER['REQUEST_URI'];
if (($domain == "www.domena1.cz" && $requri == "/" || 
   $domain == "domena1.cz"))  { 
   header("Status: 301 Moved Permanently");
   header("Location: http://www.domena1.cz/index.php?option=com_content&view=article&id=6"); 
}
?>


Zpětná vazba (feedback)

Byl tento článek nesrozumitelný, obsahoval nepřesné informace, nebo v něm nějaké informace chyběly?
Napište nám nebo využijte komentářů níže.

Komentáře

Nový komentář

(nebude zobrazen)