Als erstes muss die config.php bearbeitet werden, da in der Standard-Version die URL (und somit die Domain) fest eingetragen sind. Ich empfehle Euch die letzte Version meiner verbesserten config.php, siehe meinen Thread zu einer verbesserten config.php. Ich habe die aktuelle Version inklusive der nötigen Änderungen aber auch an diesen Thread angehängt (nach dem Download die Endung .txt entfernen und DB-Einstellungen anpassen).
Wie auch immer - in der config.php müssen folgende Einstellungen stimmen.
1.) mod_rewrite muss eingeschaltet sein, um URL Umleitungen zu ermöglichen:
Code: Select all
$config['assume_mod_rewrite'] = true;
Code: Select all
$config['use_hierarchy'] = true;
Code: Select all
$config['page_extension'] = '/';
Code: Select all
$config['root_url'] = 'http://'.$_SERVER['HTTP_HOST'];
Als nächstes legen wir die Seitenstruktur an, sofern noch nicht geschehen. Für den Aufbau der später folgenden .htaccess gehe ich jetzt von folgender Seitenstruktur aus. Bei Anpassungen (speziell die Aliase der Domain-Seiten und der ersten Unterseite einer Domain) muss darauf geachtet werden, dass auch die .htaccess entsprechend angepasst wird.
Also nehmen wir folgende Seiten-Struktur an:
|
|--> domain-1.de (Alias seite1)
| |--> Unterseite 1 (Alias unterseite1)
| `--> Unterseite 2 (Alias unterseite2)
|
|--> domain-2.de (Alias seite2)
| |--> Unterseite 3 (Alias unterseite3)
| `--> Unterseite 4 (Alias unterseite4)
|
`--> domain-3.de (Alias seite3)
|--> Unterseite 5 (Alias unterseite5)
`--> Unterseite 6 (Alias unterseite6)
Wichtig sind hier (wie gesagt) die Aliase, da diese für die Domain-Umleitungen in der .htaccess relevant sind.
Jetzt muss noch die .htaccess angelegt (oder verändert) werden. Ich habe eine Beispiel-Datei erstellt und an diesen Artikel angehängt (nach dem Download in .htaccess umbenennen und im CMSms-Installationsverzeichnis ablegen).
Hier auszugsweise die grundlegenden Einstellungen der .htaccess erklärt.
1.) Zunächst muss die RewriteEngine eingeschaltet werden:
Code: Select all
# mod_rewrite (sprechende URLs) einschalten
RewriteEngine On
RewriteBase /
Code: Select all
# Regel für Umleitung (301) von DOMAIN.DE nach www.DOMAIN.DE
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [NE,R=301,L,NC]
Code: Select all
# Regel für Umleitung (301) von Anfragen ohne . oder abschließenden /
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [NE,R=301,L]
Code: Select all
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{HTTP_HOST} ^www\.domain-1\.de
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}seite1/ [NE,R=301,L,NC]
Code: Select all
RewriteCond %{REQUEST_URI} ^/seite1/
RewriteCond %{HTTP_HOST} !^www\.domain-1\.de
RewriteRule ^(.+)$ http://www.domain-1.de%{REQUEST_URI} [NE,R=301,L,NC]
Code: Select all
RewriteCond %{REQUEST_URI} ^/seite1/$
RewriteRule ^(.*) %{REQUEST_URI}unterseite1/ [NE,R=301,L]
Code: Select all
# Rewrite rules for pages
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Nun noch ein Hinweis zur Einbindung der Menüs. Ich hatte es ja bereits angesprochen, es ist sicherlich in den meisten Fällen gewollt, dass zu jeder Domain eine seperate Menüstruktur existiert. Die Vorbereitungen dafür haben wir ja bereits getroffen. Am besten, Ihr legt nun für jede Domain ein seperates Template an. Das hat den Vorteil, dass Ihr auch andere Template-Stücke Domain-bezogen ändern könnt. Dann könnt Ihr das Menü in jedes Template einbinden und die gewünschte Ebene angeben. Hier beispielhaft die Platzhalter für die Einbindung der Menüs passend zur obigen Seitenstruktur.
Platzhalter für Template von domain-1.de:
Code: Select all
{cms_module module='menumanager' template='menuetemplate' collapse="1" number_of_levels="5" start_element="1.1" show_root_siblings="1"}
Code: Select all
{cms_module module='menumanager' template='menuetemplate' collapse="1" number_of_levels="5" start_element="2.1" show_root_siblings="1"}
Code: Select all
{cms_module module='menumanager' template='menuetemplate' collapse="1" number_of_levels="5" start_element="3.1" show_root_siblings="1"}
So, das wars dann auch schon. Das ganze ist bei mir bereits auf einer Live-Seite im Einsatz:
http://www.mercurewalsrode.de/
Es funktioniert bisher ohne Probleme.
Ein etwas anderen Ansatz wurde im englischsprachigen Forum diskutiert:
http://forum.cmsmadesimple.org/index.php/topic,22890.0.html
Vielleicht muss ja auch mal jemand anderes eine Multi-Domain-CMSms Installation machen.