TYPO3 Multi-Domain-Setup: Eine Basis-Installation für mehrere Webseiten meistern

Erfahren Sie, wie Sie mehrere Webseiten effizient über eine einzige TYPO3-Installation verwalten. Von DNS über Apache bis TYPO3 – die komplette Journey einer HTTP-Anfrage.

Einleitung 

Sie stehen vor einer Herausforderung, die viele Unternehmen kennen: Mehrere digitale Präsenzen – von der Haupt-Website über Produktseiten bis hin zu Event-Microsites – sollen zentral verwaltet werden. Die gute Nachricht: Mit TYPO3 ist genau das nicht nur möglich, sondern auch extrem effizient.

Ein Multi-Domain-Setup mit TYPO3 bedeutet: Eine Installation, unbegrenzte Möglichkeiten. Sie sparen Hosting-Kosten, reduzieren Wartungsaufwand und behalten die volle Kontrolle über Ihre digitale Infrastruktur.

In diesem Guide begleiten wir eine HTTP-Anfrage auf ihrer Journey durch das System – von der Browser-Eingabe bis zur finalen Content-Auslieferung. Sie verstehen nicht nur wie die Konfiguration funktioniert, sondern vor allem warum.

Was Sie lernen werden

Sie meistern die drei zentralen Technologie-Ebenen eines Multi-Domain-Setups: DNS als globales Routing-System, Apache als intelligenter Traffic-Director und TYPO3 als Content-Engine. Am Ende können Sie beliebig viele Domains auf einer Installation betreiben.

Inhaltsverzeichnis 


Teil 1: Die Anatomie einer URL – Was Ihr Browser wirklich sendet 

Bevor wir Server konfigurieren, müssen wir die Sprache des Webs verstehen. Jede Web-Anfrage beginnt mit einer URL – schauen wir uns an, was wirklich in der Adresszeile passiert.

URL-Komponenten im Detail 

Nehmen wir eine komplexe URL auseinander:

text
https://user:pass@myserver.at/folder1/folder2/datei.html#absatz3
URL-Anatomie: Was wird wo verarbeitet?
Wichtig zu verstehen

Das Fragment (#absatz3) verlässt niemals Ihren Browser. Alle anderen Komponenten werden als HTTP-Request an den Server gesendet. Der Server sieht nur: GET /folder1/folder2/datei.html HTTP/1.1 mit dem Host-Header myserver.at.

Die Request Journey im Überblick 

Bevor wir in die Details gehen, hier der Gesamtprozess auf einen Blick:

Der komplette Request-Lifecycle

Schauen wir uns jede Phase im Detail an.


Teil 2: DNS – Das globale Adressbuch des Internets 

DNS (Domain Name System) ist das Fundament jeder Web-Kommunikation. Browser verstehen nur IP-Adressen – DNS übersetzt menschenlesbare Domainnamen in maschinenlesbare IPs.

A-Record vs. CNAME-Record: Die entscheidende Wahl 

Für Multi-Domain-Setups gibt es zwei DNS-Record-Typen. Die Wahl hat massive Auswirkungen auf Performance und Funktionalität:

FeatureA-RecordCNAME-Record
Zeigt aufIP-Adresse (123.45.67.89)Anderen Domainnamen
DNS-Lookups1x (optimal)2x+ (langsamer)
Performance★★★★★ Beste★★★☆☆ Verzögert
Für Hauptdomain
Mit MX-Records kombinierbar
Empfohlen für Multi-Domain
CNAME-Fehler vermeiden

Kritisch: Eine Hauptdomain (z.B. firma-a.de) darf keinen CNAME haben, wenn Sie MX-Records für E-Mail benötigen. DNS-Standards verbieten diese Kombination. Ihr E-Mail-Empfang würde komplett ausfallen!

DNS-Konfiguration: Die praktische Umsetzung 

Für unser Multi-Domain-Setup mit firma-a.de und projekt-b.com benötigen Sie folgende DNS-Einträge:

Optimale Konfiguration für Multi-Domain:

DNS
; Hauptdomains
firma-a.de.           IN  A    123.45.67.89
www.firma-a.de.       IN  A    123.45.67.89
projekt-b.com.        IN  A    123.45.67.89
www.projekt-b.com.    IN  A    123.45.67.89

; E-Mail-Records funktionieren parallel
firma-a.de.           IN  MX   10 mail.firma-a.de.
projekt-b.com.        IN  MX   10 mail.projekt-b.com.

Vorteile:
Minimale DNS-Lookup-Zeit (eine Anfrage)
Kompatibel mit MX/TXT/SPF-Records
Keine DNS-Chain-Dependencies
Beste Performance

Performance-Tipp

Setzen Sie den TTL (Time to Live) auf 3600 Sekunden (1 Stunde) für produktive Systeme. Bei geplanten Änderungen reduzieren Sie ihn 24h vorher auf 300 Sekunden (5 Minuten), um schneller propagieren zu können.

DNS-Propagierung verstehen 

DNS-Änderungen sind nicht sofort weltweit sichtbar. Hier ist, was passiert:

DNS-Record-Änderung

Sie aktualisieren einen A-Record bei Ihrem DNS-Provider. Der Authoritative Nameserver hat die Änderung sofort.

ISP-Cache-Refresh

DNS-Resolver von Internet Service Providern aktualisieren ihre Caches basierend auf TTL-Werten.

Globale Propagierung

Die meisten DNS-Server weltweit haben den neuen Record. Regional können Unterschiede bestehen.

Vollständige Propagierung

Alle DNS-Server haben aktualisierte Einträge. Alte Caches sind abgelaufen.
Propagierung testen

Nutzen Sie Tools wie DNS Checker, Google Admin Toolbox Dig oder das CLI-Tool dig, um die globale DNS-Propagierung zu überprüfen:

Web-basierte Tools:

Google Admin Toolbox Dig Interface

Das Google Admin Toolbox Dig Tool ermöglicht DNS-Lookups direkt im Browser – ideal für schnelle Checks ohne Terminal-Zugriff.


CLI-Tool:

Bash
dig firma-a.de +short
# Output: 123.45.67.89

Teil 3: Apache Virtual Host – Der intelligente Traffic-Director 

DNS hat die IP-Adresse geliefert – jetzt empfängt Apache die HTTP-Anfrage. Seine Aufgabe: Anfragen für hunderte möglicher Domains an die richtigen Verzeichnisse routen.

Virtual Hosts: Ein Server, viele Websites 

Stellen Sie sich Apache als Empfangshalle eines Bürogebäudes vor. Die IP-Adresse ist die Hausadresse. Der Host-Header in jedem HTTP-Request ist wie der Firmenname auf einem Briefumschlag. Apache schaut in seiner Konfiguration nach und leitet den Request an das richtige "Büro" (DocumentRoot).

Apache Request-Routing via Host-Header

Name-Based Virtual Hosts: Die Konfiguration 

Name-based Virtual Hosts ermöglichen mehrere Websites auf einer IP-Adresse – unterschieden nur durch den Domainnamen im HTTP-Header.

Datei: /etc/apache2/sites-available/typo3-multisite.conf

APACHE
<VirtualHost *:80>
  # DocumentRoot: Der zentrale Einstiegspunkt für alle Domains
  # Alle Anfragen landen hier, unabhängig von der aufgerufenen Domain
  DocumentRoot /var/www/typo3

  # ServerName: Die primäre Domain dieses Virtual Hosts
  # Apache nutzt diese, wenn keine andere Domain passt
  ServerName www.firma-a.de

  # ServerAlias: Alle weiteren Domains, die ebenfalls hier landen
  # Durch Leerzeichen getrennte Liste aller zusätzlichen Domains
  ServerAlias firma-a.de www.projekt-b.com projekt-b.com

  # Logging für Debugging und Monitoring
  ErrorLog ${APACHE_LOG_DIR}/typo3_error.log

Die drei wichtigsten Direktiven erklärt:

ServerName: Die Hauptdomain für diesen Virtual Host

  • Definiert die primäre Domain, die Apache mit diesem Virtual Host verbindet
  • Wird als Fallback verwendet, wenn keine exakte Domain-Übereinstimmung gefunden wird
  • Beispiel: ServerName www.firma-a.de
  • Apache nutzt dies auch für Redirects und self-referential URLs
  • Wenn ein Request ohne oder mit ungültigem Host-Header kommt, greift der erste Virtual Host mit passendem ServerName

ServerAlias: Zusätzliche Domainnamen für dieselbe Website

  • Erlaubt mehrere alternative Domains, die auf denselben Virtual Host zeigen
  • Perfekt für www-Varianten oder mehrere Domainnamen für eine Website
  • Beispiel: ServerAlias firma-a.de www.projekt-b.com projekt-b.com
  • Domains werden durch Leerzeichen getrennt
  • Apache prüft zuerst ServerName, dann ServerAlias – die erste Übereinstimmung gewinnt
  • Wildcard möglich: ServerAlias *.firma-a.de (für alle Subdomains)

DocumentRoot: Der Dateisystem-Pfad zu den Website-Dateien

  • Der absolute Pfad auf dem Server, wo die Website-Dateien liegen
  • Beispiel: DocumentRoot /var/www/typo3
  • Alle Anfragen, die zu diesem Virtual Host passen, werden aus diesem Verzeichnis bedient
  • Apache sucht nach der angefragten Datei relativ zu diesem Pfad
  • Bei TYPO3: Hier liegt die index.php, die alle Requests verarbeitet
  • Wichtig: Muss ein existierendes Verzeichnis sein, auf das Apache lesend zugreifen kann

Zusammenspiel in der Praxis:

  1. Browser sendet Request an www.projekt-b.com
  2. Apache empfängt Request und liest den Host: www.projekt-b.com Header
  3. Apache durchsucht alle Virtual Hosts nach ServerName oder ServerAlias = www.projekt-b.com
  4. Match gefunden! → Apache verwendet den konfigurierten DocumentRoot /var/www/typo3
  5. Alle weiteren Datei-Zugriffe erfolgen relativ zu /var/www/typo3
Häufiger Fehler: AllowOverride None

Wenn AllowOverride None gesetzt ist, ignoriert Apache die .htaccess von TYPO3. Symptom: 404-Fehler für alle Seiten außer der Startseite. Lösung: Setzen Sie AllowOverride All.

Multi-Domain mit separaten DocumentRoots 

Manchmal möchten Sie unterschiedliche TYPO3-Installationen pro Domain. Hier die erweiterte Konfiguration:

APACHE
# Virtual Host 1: Firma A
<VirtualHost *:443>
  DocumentRoot /var/www/firma-a
  ServerName www.firma-a.de
  ServerAlias firma-a.de
  
  <Directory /var/www/firma-a>
      Options FollowSymLinks
      AllowOverride All
      Require all granted
  </Directory>
</VirtualHost>

# Virtual Host 2: Projekt B
<VirtualHost *:443>
Wann separate DocumentRoots?
  • Eine Installation: Shared Hosting, gemeinsame Extensions, zentrale Wartung
  • Separate Installationen: Vollständig isolierte Projekte, unterschiedliche TYPO3-Versionen, separate Teams

Teil 4: TYPO3 Site Management – Die Content-Engine 

Apache hat den Request weitergeleitet – jetzt übernimmt TYPO3. Das CMS muss entscheiden: Welche Webseite soll für diese spezifische Domain ausgeliefert werden?

Das Fundament: Der TYPO3-Seitenbaum 

TYPO3 verwaltet alle Inhalte in einem hierarchischen Seitenbaum (Page Tree). Für jede unabhängige Website benötigen Sie eine Root Page (Wurzel-Seite).

TYPO3 Multi-Site Seitenbaum-Struktur

Site Management Modul: Die moderne Konfiguration 

Seit TYPO3 v9 ersetzt das Site Management Modul komplexe TypoScript-Konfigurationen. Es definiert Entry Points – die Verknüpfung zwischen Domain und Root Page.

Root Pages erstellen

Erstellen Sie im Seitenbaum für jede Website eine Root Page. Aktivieren Sie unter "Seiteneigenschaften → Verhalten" die Option "Als Anfang einer Webseite benutzen".

Site Management öffnen

Navigieren Sie zu "Site Management → Sites". Alle Root Pages werden angezeigt, die noch keine Site-Konfiguration haben.

Site-Konfiguration anlegen

Klicken Sie bei der ersten Root Page auf "Site hinzufügen". Vergeben Sie einen eindeutigen Site-Identifier (z.B. "firma_a").

Entry Point definieren

Der kritische Schritt: Geben Sie unter "Entry Point" die vollständige Domain ein: https://www.firma-a.de/ – dies ist die Verknüpfung!

Sprachen konfigurieren

Fügen Sie mindestens eine Sprache hinzu (z.B. Deutsch mit Locale "de_DE.UTF-8"). Setzen Sie den Einstiegspunkt auf "/".

Wiederholen für weitere Sites

Wiederholen Sie Schritte 3-5 für jede weitere Domain/Root Page mit jeweils eigenem Entry Point.

Die config.yaml im Detail 

Jede Site-Konfiguration wird als YAML-Datei gespeichert. Hier die Struktur für unsere Firma A:

YAML
# typo3conf/sites/firma_a/config.yaml
rootPageId: 1
base: 'https://www.firma-a.de/'

# Sprach-Konfiguration
languages:
-
  title: Deutsch
  enabled: true
  languageId: 0
  base: /
  typo3Language: de
  locale: de_DE.UTF-8
  iso-639-1: de
  navigationTitle: Deutsch

Key Concepts:
rootPageId: Die Page-UID der Root Page
base: Der Entry Point – TYPO3 matcht HTTP-Requests gegen diesen Wert
languages: Multi-Language-Support
errorHandling: Custom Error Pages
routes: Statische Routes (robots.txt, sitemap.xml)

Versionskontrolle für Site-Configs

Die config.yaml-Dateien sollten versioniert werden (Git). So können Sie:

  • Änderungen tracken
  • Rollbacks durchführen
  • Configs über Umgebungen synchronisieren (Dev → Staging → Prod)
  • Code-Reviews für Infrastruktur-Änderungen

TYPO3 Request-Matching: Der Algorithmus 

So entscheidet TYPO3, welche Site für eine Anfrage zuständig ist:

TYPO3 Site Resolution Flow

Wichtig: TYPO3 prüft base UND baseVariants. Die erste passende Konfiguration gewinnt. Bei mehreren Matches hat die alphabetisch erste config.yaml Vorrang.


Teil 5: Die komplette Request Journey – End-to-End 

Verfolgen wir nun eine vollständige Anfrage für www.projekt-b.com durch alle Schichten:

End-to-End Request Journey für www.projekt-b.com

Request-Details: Die HTTP-Header 

Was sendet der Browser wirklich? Schauen wir uns die tatsächlichen HTTP-Header an:

HTTP-Request vom Browser:

HTTP
GET / HTTP/1.1
Host: www.projekt-b.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-DE,de;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1

Wichtig für das Routing:
Host: www.projekt-b.com – Apache und TYPO3 nutzen diesen Header für Domain-Matching
Accept-Language: Browser-Präferenz für Sprache (TYPO3 kann darauf reagieren)
Accept-Encoding: Server kann Response komprimieren (gzip)

Troubleshooting: Häufige Fehler 

Häufigster Fehler: Trailing Slash vergessen

Der base-Wert in der TYPO3 config.yaml muss mit / enden:

base: 'https://www.firma-a.de/'
base: 'https://www.firma-a.de'

Ohne Trailing Slash funktioniert das Domain-Matching nicht!


Fazit: Ihre digitale Infrastruktur – skalierbar und zukunftssicher 

Sie haben die vollständige Architektur eines TYPO3 Multi-Domain-Setups gemeistert. Von der DNS-Ebene über den Apache Virtual Host bis zur TYPO3 Site-Konfiguration – Sie verstehen jetzt, wie die einzelnen Komponenten nahtlos ineinandergreifen.

Was Sie erreicht haben 

Performance

Optimale DNS-Konfiguration mit A-Records für minimale Latenz. Keine CNAME-Chains, direktes IP-Routing. Ihre Sites sind weltweit schnell erreichbar.

Kosteneffizienz

Eine TYPO3-Installation für beliebig viele Domains. Reduzierte Hosting-Kosten, gemeinsame Extension-Verwaltung, zentrale Wartung und Updates.

Wartbarkeit

Zentrale Verwaltung aller Websites. Ein Update, ein Backup, eine Monitoring-Konfiguration. Ihre DevOps-Teams werden es lieben.

Security

SSL/TLS-Konfiguration für alle Domains. HSTS, Security-Header und moderne TLS-Cipher. Ihre Besucher sind geschützt.

Skalierbarkeit

Unbegrenzte Erweiterung: Neue Domains in Minuten hinzufügen. Keine komplexen Migrations-Projekte mehr. Ihre Infrastruktur wächst mit Ihrem Business.

Flexibilität

Individuelle Konfigurationen pro Site. Eigene Sprachen, eigene Templates, eigene Extensions – alles aus einer zentralen Installation heraus steuerbar.

Die drei Ebenen im Überblick 

Die drei Architektur-Ebenen im Zusammenspiel

Ihre nächsten Schritte 

DNS konfigurieren

Erstellen Sie A-Records für alle Domains. Nutzen Sie einen TTL von 3600 Sekunden. Warten Sie 24-48h auf vollständige Propagierung.

Apache Virtual Host einrichten

Erstellen Sie die Virtual Host Konfiguration mit ServerName und ServerAlias. Aktivieren Sie SSL mit Let's Encrypt. Testen Sie mit curl.

TYPO3 Sites konfigurieren

Erstellen Sie Root Pages im Seitenbaum. Konfigurieren Sie Entry Points im Site Management. Testen Sie jede Domain im Browser.

Monitoring & Optimierung

Implementieren Sie Uptime-Monitoring. Konfigurieren Sie Log-Rotation. Optimieren Sie Apache-Performance (mod_cache, HTTP/2).

Best Practices für den Produktivbetrieb 

Production-Checklist

DNS:

  • A-Records für alle Domains und www-Subdomains
  • TTL auf 3600 Sekunden (1 Stunde)
  • CAA-Records für SSL-Provider (Let's Encrypt)
  • SPF/DKIM/DMARC für E-Mail-Domains

Apache:

  • SSL/TLS mit automatischer Renewal (certbot)
  • HTTP/2 aktiviert (a2enmod http2)
  • Gzip/Brotli-Kompression (a2enmod deflate)
  • Security-Header (HSTS, X-Frame-Options, CSP)
  • Log-Rotation konfiguriert

TYPO3:

  • Site-Configs versioniert (Git)
  • Separate config.yaml pro Site
  • baseVariants für Staging/Dev
  • Error-Handling mit Custom-Pages
  • robots.txt & sitemap.xml per Site
  • Multi-Language konfiguriert

Monitoring:

  • Uptime-Checks für alle Domains (z.B. UptimeRobot)
  • SSL-Zertifikat-Expiry-Alerts
  • DNS-Monitoring (z.B. DNSPerf)
  • Apache-Logs aggregiert (z.B. ELK Stack)
  • TYPO3-Error-Logging zentralisiert

Support & Weiterführende Ressourcen 

Offizielle Dokumentation:

Tools:

Kontaktieren Sie uns für ein unverbindliches Gespräch.

E-Mail: office@webconsulting.at

Lassen Sie uns über Ihr Projekt sprechen

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Dieser Inhalt wurde teilweise mithilfe von KI erstellt.