TYPO3 Site-Konfiguration: Anleitung für v13 und v14

Schritt-für-Schritt-Anleitung zur TYPO3 Site-Konfiguration: config.yaml, Sprachen, Base Variants, Fehlerbehandlung, statische Routen, Site Settings und Site Sets in TYPO3 v13.4 und v14.

TYPO3 Site-Konfiguration: Anleitung für v13 und v14

Seit TYPO3 v9 hat jede Website in einer TYPO3-Installation eine eigene Site-Konfiguration mit einem eigenen Backend-Modul. Diese Schritt-für-Schritt-Anleitung (für Einsteiger bis Fortgeschrittene) behandelt die TYPO3 Site-Konfiguration von TYPO3 v9 und v10 bis zu den aktuellen LTS-Versionen TYPO3 v13.4 und v14.

TYPO3 Site Management bietet eine moderne Möglichkeit zur Verwaltung von Single- oder Multi-Site-Installationen. Die seit TYPO3 v9 verfügbare Site-Konfiguration definiert den Einstiegspunkt jeder Website, Sprachen, routing, Fehlerbehandlung und weitere wichtige Einstellungen. Für Projekte, die zusätzlich AI einsetzen, stellt die AI Foundation für TYPO3 eine zentrale Backend-Ebene zur Konfiguration von Anbietern, Kontexten, Berechtigungen, Budgets und AI-Workflows bereit.

IMHO, TYPO3-Site-Konfiguration ist eine der späten, aber großen Entscheidungen der TYPO3-Community.

TYPO3 hat bereits seit über 20 Jahren Multi-Site- und Multi-Sprachen-Funktionen, aber mit vielen komplizierten und unstrukturierten Tonnen von TypoScript, RealURL-Konfiguration, Domains Records usw. 

Mit dem Backend-Modul für TYPO3-Sites haben wir nun aber eine strukturierte und einfach zu bedienende Verwaltung der TYPO3-Sites.

Sind Sie Anfänger oder Mittelstufe in der Konfiguration von TYPO3-Sites? Dann sollten Sie sich mit dem TYPO3-Site-Management vertraut machen.

Kurze Antwort: Die TYPO3 Site-Konfiguration ist eine YAML-Datei, config/sites/<identifier>/config.yaml, die Root-Seite, Basis-URL, Sprachen, Fehlerseiten, statische Routen und Route Enhancer einer Website festlegt. Sie bearbeiten sie im Backend unter Site Management > Sites (TYPO3 v13) oder Sites > Setup (TYPO3 v14) oder direkt in der Datei unter Versionsverwaltung.

Das Wichtigste in Kürze

  • Jede Website braucht eine Root-Seite (rootPageId), eine base und mindestens eine Sprache mit languageId: 0.
  • Seit TYPO3 v12.1 liegen Site Settings in der settings.yaml. Ein settings-Block in der config.yaml wird ignoriert, sobald diese Datei existiert.
  • Site Sets (ab TYPO3 v13.1) bündeln Settings, TypoScript und Page TSconfig. Eine Website aktiviert sie unter dependencies; seit TYPO3 v14.1 können Sets auch Route Enhancer liefern.
  • Die Sprachschlüssel typo3Language, iso-639-1 und direction sind seit TYPO3 v12.3 veraltet. TYPO3 leitet sie aus locale ab.

Getestet mit / gültig für: TYPO3 v13.4 LTS und v14 (14.3 LTS), geprüft anhand von TYPO3 Explained: Site handling.
Aktualisiert: November 2026

Der klassische Weg konfigurierte Domains, Sprachen und Fehlerseiten über TypoScript, Domain-Datensätze und die Extension RealURL. Der moderne Weg, verfügbar seit TYPO3 v9, bündelt all das in einer Site-Konfiguration pro Website.

Für die Anfänger ist es wichtig zu verstehen, was ein großer Unterschied ist, wie man TYPO3-Sites in früheren und aktuellen TYPO3-Versionen verwaltet.

TYPO3 Site-Konfiguration für folgende TYPO3 v9

In einer älteren Version von TYPO3 haben Sie zur Verwaltung der TYPO3-Website eine Konfiguration wie

// Domain-wise condition to setup each site’s URL
config.baseURL = https://yoursite.com/

// Add languages from the Backend
Web > List > Languages & Domains

// Third-party RealURL TYPO3 extension configuration for each Language & Domains
EXT:realurl 

// Add Custom Configuration for Error-handling into RealURL
404 handling

// And so many other tasks
Manually or using third-party TYPO3 extensions for Robots, Google XML Sitemap, etc.

TYPO3 Site-Konfiguration für obige TYPO3 v9

Aber keine Sorge wegen TYPO3 v9, TYPO3 hat jetzt eine zentralisierte All-in-One-Lösung, um alles zu verwalten ;)

Gehen Sie zu Site Management > Sites (TYPO3 v14: Sites > Setup) > Und klicken Sie einfach zur Konfiguration

TYPO3 v13 hat Site Sets und einen Editor für Site Settings eingeführt, TYPO3 v14 hat die Backend-Module umbenannt und die Site Settings in das Site Setup integriert. Die Kernschlüssel der config.yaml (base, rootPageId, languages, errorHandling, routes, routeEnhancers) sind für beide Versionen gleich dokumentiert.

  • Backend-Modul in v13: Site Management > Sites für das Site Setup, Site Management > Settings für Site Settings (seit v13.3).
  • Backend-Modul in v14: Sites > Setup. Das frühere Modul Settings ist Teil von Setup, und Web > List heißt jetzt Content > Records (TYPO3 Changelog #107628). Weitere Änderungen finden Sie in unseren TYPO3 v14 Release Notes.
  • Site Sets (ab v13.1): Sets liegen in Configuration/Sets/<Name>/ einer Extension oder eines Site Package. Mehr dazu in Was sind Site Sets in TYPO3 v13?

Klassisch oder modern: welche Methode für welche Aufgabe?

MethodeFunktioniert in VersionenGeeignet fürEinschränkung
Site-Konfiguration (config.yaml)ab v9, inkl. v13.4 und v14Basis-URL, Sprachen, Fehlerseiten, statische Routen, Route EnhancerLiegt im Dateisystem, nicht in der Datenbank; in die Versionsverwaltung aufnehmen
Site Settings (settings.yaml)ab v12.1; typisierte Definitionen ab v13.1Werte pro Website für PHP, TypoScript, Page TSconfig und FluidSpeichern im Settings-Editor schreibt die Datei neu und entfernt Imports
Site Sets (dependencies)ab v13.1; Route Enhancer ab v14.1Wiederverwendbares TypoScript, Page TSconfig und Settings für mehrere WebsitesBei zusätzlichem sys_template-Datensatz die Clear-Flags deaktivieren, sonst wird das TypoScript der Sets gelöscht
sys_template-Datensatz mit TypoScript-Konstantenalle Versionen; optional seit v13.1Bestandsprojekte und Überschreibungen in einem SeitenbaumWird nach Site- und Set-TypoScript angewendet und kann es überschreiben
Domain-Datensätze, RealURL, TypoScript-BedingungenProjekte vor TYPO3 v9Alte Projekte verstehen und migrierenMit Site Handling sind sys_domain-Datensätze nicht mehr nötig

Ob Ihr Projekt mit einem unserer TYPO3 Templates oder mit einem eigenen Site Package startet: In der Site-Konfiguration laufen Basis-URL, Sprachen und Site Sets zusammen. Quellen: Site sets (v13.4), Site settings (v12.4).

Minimales config.yaml-Beispiel

Diese Datei definiert eine Website mit Englisch als Standardsprache und Deutsch unter /de/. Speichern Sie sie als config/sites/main/config.yaml (Composer-Modus) und passen Sie rootPageId und base an. Die Schlüssel typo3Language, iso-639-1 und direction sind nicht nötig, TYPO3 leitet sie aus locale ab.

 

rootPageId: 12
base: 'https://example.org/'
websiteTitle: Example
languages:
  - title: English
    enabled: true
    languageId: 0
    base: /
    locale: en_US.UTF-8
    navigationTitle: English
    flag: gb
  - title: Deutsch
    enabled: true
    languageId: 1
    base: /de/
    locale: de_DE.UTF-8
    navigationTitle: Deutsch
    flag: de
    fallbackType: strict

 

Quelle: Site handling basics (Struktur anhand der Docs für main und 12.4 geprüft).

Als TYPO3-Administrator sollten Sie über Grundkenntnisse der Site-Verwaltung von TYPO3 verfügen. Wann immer Sie TYPO3 migrieren, müssen Sie z.B. die Domäne wechseln.

Schritt 1. Melden Sie sich im TYPO3 Backend an.

Schritt 2. Gehen Sie in TYPO3 v13 zu Site Management > Sites oder in TYPO3 v14 zu Sites > Setup (siehe obiger Screenshot)

Schritt 3. Bearbeiten Sie eine bestimmte "TYPO3 Site" für jeden Stammseitenbaum.

Schritt 4. Sie können die Domain-URL in das Feld "Einstiegspunkt" ändern.

Das war's schon! Das URL-Routing der gesamten Website wird fantastisch funktionieren ;)

Eines möchte ich noch sagen: "Herzlichen Dank an Dmitry Dulepov" für seine engagierte Arbeit und Unterstützung der RealURL-TYPO3-Erweiterung für ein Jahr. EXT:realurl war eine der großartigen TYPO3-Erweiterungen und half allen bisherigen TYPO3-Sites beim URL-Routing.

TYPO3 speichert jede Website als YAML-Datei, in Composer-Installationen unter config/sites/<identifier>/config.yaml und im Classic Mode unter typo3conf/sites/<identifier>/config.yaml, nicht in Datenbanktabellen. Nehmen Sie diesen Ordner in die Versionsverwaltung auf.

Das Gute ist, dass TYPO3 eine der sich schnell durchsetzenden modernen Technologien ist, Gott sei Dank ignoriert man TypoScript, PHP usw. Für jede TYPO3-Site-Konfiguration wird die am weitesten verbreitete YAML-Dateistruktur verwendet.

Auf den Speicherort der YAML-Datei kommt es gut an!

Wo befindet sich TYPO3 config.yaml?

// For TYPO3 Composer-Based
<project-root>/config/sites/<identifier>/

// For TYPO3 Non-Composer Project
<project-root>/typo3conf/sites/<identifier>/

Beispiel-Tutorial der TYPO3-Site Config.yaml

Hier ist das grundlegende Tutorial von TYPO3 config.yaml, das sehr selbsterklärend und leicht verständlich ist ;) Dieses minimale Beispiel verwendet nur Schlüssel, die für TYPO3 v13.4 und v14 dokumentiert sind.

# Composer: config/sites/main/config.yaml
# Classic mode: typo3conf/sites/main/config.yaml
# Keys documented for TYPO3 v13.4 LTS and v14
rootPageId: 1
base: 'https://example.org/'
websiteTitle: 'My TYPO3 Website'
dependencies:
  - typo3/fluid-styled-content
languages:
  - languageId: 0
    title: English
    enabled: true
    locale: en_US.UTF-8
    base: /
    navigationTitle: English
    hreflang: en-US
    flag: gb
  - languageId: 1
    title: Deutsch
    enabled: true
    locale: de_DE.UTF-8
    base: /de/
    navigationTitle: Deutsch
    hreflang: de-DE
    fallbackType: fallback
    fallbacks: '0'
    flag: de
errorHandling:
  - errorCode: '404'
    errorHandler: Page
    errorContentSource: 't3://page?uid=6'
routes:
  - route: robots.txt
    type: staticText
    content: |
      User-agent: *
      Disallow: /typo3/
      Sitemap: https://example.org/sitemap.xml
# Readable sitemap URL, requires the system extension EXT:seo
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    map:
      /: 0
      sitemap.xml: 1533906435

Es ist sehr einfach: Entweder Sie können direkt eine config.yaml erstellen ODER Sie können es schnell per Klick-n-go aus dem TYPO3-Backend heraus tun.

Schritt 1. Gehen Sie zu Site Management > Sites (TYPO3 v14: Sites > Setup) > Klicken Sie auf die Schaltfläche "Neue Site-Konfiguration für diese Site hinzufügen".

Schritt 2. Konfigurieren Sie "Site-Identifier" (geben Sie einfach einen beliebigen Namen an) und "Einstiegspunkt" (Ihre Domain-URL).

Schritt 3. Gehen Sie zur Registerkarte "Sprachen" > Fügen Sie mindestens eine Sprache mit dem Feld "Titel und Gebietsschema" hinzu.

Um Multi-Domain-Websites zu verwalten, müssen Sie nur mehrere Sites für jede Domain hinzufügen.

Außerdem gibt es in der TYPO3-Site-Konfiguration ein interessantes Feld namens "Basisvarianten", das für verschiedene TYPO3-Kontextumgebungen wichtig ist.

Moderne TYPO3-Entwickler richten immer verschiedene TYPO3-Umgebungen ein, z.B. Lokaler Server, Staging-Server, Produktionsserver. So hat natürlich jeder TYPO3-Kontext unterschiedliche URLs. Diese können Sie einfach über baseVariants konfigurieren.

// config.yaml
rootPageId: 1
base: 'https://yourdomain.com/'
baseVariants:
  -
    base: 'https://yourdomain.local/'
    condition: 'applicationContext == "Development"'
  -
    base: 'https://staging.yourdomain.com/'
    condition: 'applicationContext == "Staging"'
  -
    base: 'https://testing.yourdomain.com/'
    condition: 'applicationContext == "Testing"'

Versuchen wir einen tieferen Einblick für jede Konfiguration und Eigenschaften von config.yaml

Wie wird die Konfiguration der mehrsprachigen TYPO3-Website eingerichtet?

Schritt 1. Gehen Sie zu Web > Liste > Sprache der Website. Dieser Schritt ist nur in alten Versionen nötig: Seit TYPO3 v11.3 ist die Tabelle sys_language veraltet, und Sie legen eine Sprache direkt in der Site-Konfiguration mit „Create new language“ oder einer Vorlage an.

Schritt 2. Fügen Sie Ihre Sprache mit Sprachtitel, Wählen Sie eine Sprache und Sprache Flagge hinzu. Und natürlich klicken Sie auf die Schaltfläche "Speichern" ;)

Schritt 3. Gehen Sie nun zu Site Management > Sites > Bearbeiten Sie Ihre Site-Konfiguration > Klicken Sie auf die Registerkarte "Sprachen".

Schritt 4. Wählen Sie die hinzugefügte "Sprache" und konfigurieren Sie die verfügbaren Sprachoptionen

Werfen Sie einen Blick in die Konfigurationsdatei Ihrer TYPO3-Site, dort finden Sie auch eine andere Sprache.

Natürlich müssen Sie nicht für jede Änderung manuell in das TYPO3-Backend-Site-Verwaltungsmodul gehen, sondern können auch einfach unter config.yaml Änderungen vornehmen.

# config.yaml (excerpt)
# typo3Language, iso-639-1 and direction are deprecated since TYPO3 v12.3
# and derived from locale, so they are not needed any more
base: 'https://t3104.ddev.site/'
rootPageId: 16
languages:
  - languageId: 0
    title: English
    enabled: true
    locale: en_US.UTF-8
    base: /
    navigationTitle: English
    hreflang: en-US
    flag: gb
  - languageId: 1
    title: German
    enabled: true
    locale: de_DE.UTF-8
    base: /de/
    navigationTitle: German
    hreflang: de-DE
    fallbackType: strict
    flag: de

Kostenloser Mehrsprachigkeits-Leitfaden für TYPO3

Planen, übersetzen und synchronisieren Sie die Sprachen Ihrer TYPO3-Website, mit einem 18-seitigen PDF-Leitfaden und einer Excel-Sprachtabelle.

Kostenlosen Mehrsprachigkeits-Leitfaden holen

Möchten Sie die TYPO3-Fehlerbehandlung konfigurieren, z.B. 404-Fehler, 403-Fehler, etc.

Schritt 1. Gehen Sie zu Site Management > Sites > Wählen Sie Ihre Konfiguration.

Schritt 2. Klicken Sie auf die Registerkarte "Fehlerbehandlung" und dann auf die Schaltfläche "Neu erstellen".

Schritt 3. Wählen Sie "HTTP-Fehlerstatuscode" wie "403". Und wählen Sie "Inhalt der Seite anzeigen" aus dem Dropdown-Menü "Fehlerbehandlung". Eine gute Sache ist, dass Sie es auch über Ihre Fluid-Templates konfigurieren können, ebenso wie über benutzerdefinierte PHP-Klassen-Handler.

Schritt 4. Wählen Sie Ihre 403-Seiten-Fehlerseite unter "Inhalt von Seite anzeigen" (und, Speichern Sie Ihre Konfiguration)

// config.yaml
base: 'https://t3104.ddev.site/'
errorHandling:
 -
   errorCode: '404'
   errorHandler: Page
   errorContentSource: 't3://page?uid=18'
 -
   errorCode: '403'
   errorHandler: Page
   errorContentSource: 't3://page?uid=6'

Wie konfiguriere ich die statischen TYPO3-Routen?

Genauso wie Sprachen und Fehlerbehandlung können Sie TYPO3 Statische Routen wie robots.txt, sitemap.xml usw. einfach wie unten beschrieben konfigurieren.

# config.yaml
base: 'https://t3104.ddev.site/'
routes:
  - route: robots.txt
    type: staticText
    content: |
      User-agent: *
      Disallow: /typo3/
      Sitemap: https://t3104.ddev.site/sitemap.xml
  # XML sitemap of EXT:seo (page type 1533906435)
  - route: sitemap.xml
    type: uri
    source: 't3://page?uid=1&type=1533906435'
  - route: favicon.ico
    type: uri
    source: 't3://file?uid=77'

Route Enhancer im Abschnitt routeEnhancers der config.yaml machen aus Extension-Parametern lesbare URLs. Seit TYPO3 v14.1 kann auch ein Site Set sie in route-enhancers.yaml mitliefern; die Site-Konfiguration hat dabei weiterhin Vorrang (TYPO3 Explained: Site sets).

TYPO3 Route Enhancer – https://news.typo3.com/article/how-to-route-enhancer-for-news

Um die Verwaltung der TYPO3-Site zu verbessern, möchte ich ein paar Tipps und Tricks weitergeben ;)

CLI-Befehle für TYPO3-Sites

Von Ihren bevorzugten Terminal-Kommandozeilen-Tools aus können Sie zunächst die Details jeder konfigurierten TYPO3-Site auflisten und einsehen

Auflistung von TYPO3-Sites

# Composer-based installation
vendor/bin/typo3 site:list

# Classic mode installation (without Composer)
typo3/sysext/core/bin/typo3 site:list

Detail einer bestimmten TYPO3-Website

# Syntax: site:show <identifier>
# Composer-based installation
vendor/bin/typo3 site:show youridentifier

# Classic mode installation (without Composer)
typo3/sysext/core/bin/typo3 site:show youridentifier

Wenn TypoScript auf TYPO3-Site-Konfiguration trifft

Sie können jede Konfiguration Ihrer TYPO3-Site ganz einfach mit unserem fantastischen TypoScript erreichen ;) Hier sind einige Beispiele;

// TypoScript Setup Examples

// Get Site URL
page.10 = TEXT
page.10.data = site:base
page.10.wrap = My Site’s URL: |

// Get Custom Configuration
page.20 = TEXT
page.20.data = site:customConfigKey.nested.value
page.20.wrap = My Custom Configuration: |

// Get Title
page.30 = TEXT
page.30.data = siteLanguage:navigationTitle
page.30.wrap = Title of Current Page: |

// Get Direction Properties of Site
page.40 = TEXT
page.40.dataWrap = The language direction is {siteLanguage:direction}

Fluid-Vorlage + TYPO3-Site-Konfiguration

Wir können auch leicht TYPO3-Sites jede Konfiguration in Ihren Fluid Templates mittels "SiteProcessor"-Datenverarbeitung erhalten.

// TypoScript Setup
tt_content.mycontent.20 = FLUIDTEMPLATE
tt_content.mycontent.20 {
    file = EXT:myextension/Resources/Private/Templates/ContentObjects/MyContent.html

    dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\SiteProcessor
    dataProcessing.10 {
        as = site
    }
}

// Call Properties at your Fluid-Template
<p>{site.rootPageId}</p>
<p>{site.configuration.someCustomConfiguration}</p>

TypoScript-Bedingungen für die TYPO3-Site-Konfiguration

Für die Konfiguration von TYPO3-Sites bietet TYPO3 eine spezielle Funktion, die als TypoScript-Bedingung geprüft werden kann. Sehen wir uns das an einem praktischen Beispiel an;

// TypoScript Setup
[site("identifier") == "someIdentifier"]
    page.30.value = foo
[global]

[siteLanguage("locale") == "de_CH.UTF-8"]
    page.40.value = bar
[global]

Die TYPO3-Site-Konfiguration in Extbase PHP übernehmen?

Möchten Sie die Konfigurationseigenschaften der TYPO3-Site in Ihrer Extbase/Fluid TYPO3 Extension aufrufen? Hier sind einige Beispiele, um TYPO3-Konfigurationseigenschaften an Extbase PHP zu übergeben.

<?php
// Valid for TYPO3 v13.4 LTS and v14
use Psr\Http\Message\ServerRequestInterface;
use TYPO3\CMS\Core\Site\SiteFinder;

final class MySiteService
{
    public function __construct(
        private readonly SiteFinder $siteFinder,
    ) {}

    public function example(ServerRequestInterface $request): void
    {
        // Current site and site language of the request
        $site = $request->getAttribute('site');
        $siteLanguage = $request->getAttribute('language');

        // Find sites independent of the current request
        $siteByIdentifier = $this->siteFinder->getSiteByIdentifier('main');
        $siteByPageId = $this->siteFinder->getSiteByPageId(42);
        $allSites = $this->siteFinder->getAllSites();

        // Read values from the Site object
        $rootPageId = $site->getRootPageId();
        $configuration = $site->getConfiguration();
        $setting = $site->getSettings()->get('myExtension.backgroundColor');
        $errorHandler = $site->getErrorHandler(404);
        $german = $site->getLanguageById(1);
    }
}

Die Umgebung in der TYPO3-Site-Konfiguration

Umgebungsvariablen in der Site-Konfiguration ermöglicht das Setzen von Platzhaltern für Konfigurationsoptionen, die durch Umgebungsvariablen ersetzt werden, die für die aktuelle Umgebung spezifisch sind.

// config.yaml
base: 'https://%env(BASE_DOMAIN)%/'

// Import file of ENV-based configuration
resource: 'MyFile_%env("foo")%.yaml'

Wie importiert man Ressourcen der TYPO3 Website-Konfiguration in eine benutzerdefinierte Erweiterung?

Ja, Sie können die YAML-Konfiguration Ihrer benutzerdefinierten Erweiterung einfach mit "import" in die TYPO3-Site-Konfiguration importieren.

// config.yaml
base: 'https://t3104.ddev.site/'
rootPageId: 16
imports:
    - { resource: 'EXT:youextensionkey/Configuration/Sites/yourextension.yaml' }

Natürlich können Sie die Website-Konfiguration problemlos mit Ihrer eigenen TYPO3-Erweiterung erweitern. Wenn ich z.B. ein benutzerdefiniertes Feld hinzufügen, benutzerdefinierte Optionen für das Backend des TYPO3-Site-Verwaltungsmoduls konfigurieren kann usw.

Hinweis: TYPO3 Explained bezeichnet die Erweiterung des Site-Konfigurationsformulars als experimentell. Unterstützt werden nur einfache Felder wie input (Extending site configuration).

Benutzerdefinierte Optionen in Config.yaml

// config.yaml
rootPageId: 1
base: https://yoursite.com
myProject:
    recordStorage: 12

// Access it via the API:
$site->getConfiguration()['myProject']['recordStorage']

Weitere Optionen zum TYPO3 Site-Konfigurationsmodul hinzufügen

// Create: Configuration/SiteConfiguration/Overrides/sites.php
<?php

// Configure a new simple required input field to the site
$GLOBALS['SiteConfiguration']['site']['columns']['myCustomField'] = [
    'label' => 'My Custom New Field',
    'config' => [
        'type' => 'input',
        'eval' => 'required',
    ],
];

// And add it to showitem
$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] = str_replace(
    'base,',
    'base, myCustomField, ',
    $GLOBALS['SiteConfiguration']['site']['types']['0']['showitem']
);

Diese Extensions wurden für frühere TYPO3-Versionen geschrieben. Prüfen Sie daher im TER oder bei Packagist, ob sie TYPO3 v13 und v14 unterstützen, bevor Sie eine installieren. Lassen Sie mich einige der nützlichen TYPO3-Erweiterungen für die TYPO3-Site-Konfiguration auflisten.

Paket zur Handhabung der TYPO3-Konfiguration

Einer und nur Helmut - Ein großer Mitwirkender der TYPO3-Gemeinschaft entwickelte eine coole TYPO3-Lösung zur Konfiguration der nächsten Stufe der TYPO3-Kontextumgebung.

Merkmale

  • Einstellungen abhängig von der Umgebung
  • Konfigurationsdateien in anderen Formaten
  • Im Konfigurationsordner gespeicherte Konfigurationsdateien
  • Erweiterte Website-Konfiguration
  • Verschlüsseln von Werten in Konfigurationsdateien

Schritt 1. TYPO3-Config-Handling-Paket installieren

// CLI Composer Install
composer req helhum/typo3-config-handling

Schritt 2. Komponist.json

{
    "extra": {
        "helhum/typo3-config-handling": {
            "settings": "config/settings.yaml",
            "dev-settings": "config/dev.settings.yaml",
            "override-settings": "config/override.settings.yaml",
            "install-steps": "config/setup/install.steps.yaml"
        }
    }
}

Schritt 3. Komponist aktualisieren

Dynamischer TYPO3-Site-Generator/Baum

Florian Rival entwickelte den EXT:site_generator. Site-Generator-Assistent zur Generierung von Mini-Websites oder Duplikat-Baummodellen. Er erstellt automatisch verknüpfte BE/FE-Gruppen, erstellt Verzeichnisse mit verknüpften Dateien mount, fügt einen Domänennamen hinzu, aktualisiert die Typoscript-Konfiguration (Ordner/Seiten-ID und TCEMAIN.clearCacheCmd), aktualisiert Slugs.

TYPO3-Website: Spracherkennungs-Redirect-Resolver

Daniel Abplanalp entwickelte EXT:ig_language_detection - Moderner Weg zur Spracherkennung. Spracherkennung im PSR-15-Middleware-Stapel auf uri=/. Basierend auf dem Accept-Language-Header wird die entsprechende Site-Konfiguration ausgewählt. Weitere Konfigurationen in der YAML-Site-Konfiguration wie Aliase und mehr sind verfügbar.

  • Die Spracherkennung wird nur aufgerufen, wenn "https://www.yoursite.com" eingegeben wurde, aber alle Sites haben "https://www.yoursite.com/lang-key/".
  • Weitere Konfigurationen werden in der YAML-Konfigurationsdatei der Site vorgenommen (z.B. typo3conf/sites/website/config.yaml)
  • Die Spracherkennung erfolgt mit einem Accept-Header (HTTP_ACCEPT_LANGUAGE) vom Browser.

Umleitung der TYPO3-Site-Konfigurationssprache

Harald Atteneder entwickelte die EXT:site_language_redirection. PSR-15-Middleware zur Umleitung des Benutzers zur korrekten Site-Sprache über HTTP-Header (Accept-Language) und IP-Adresse.

  • Diese Erweiterung ermöglicht die Spracherkennung auf der Grundlage der Browsersprache (HTTP-Header) des Besuchers oder seiner IP-Adresse.
  • Wenn der Besucher zu einer anderen Sprache navigiert (z.B. durch Sprachumschaltung), wird ein Cookie gesetzt, um die neue Sprache als bevorzugte Sprache zu speichern.
  • Suchmaschinen-Bots werden nicht umgeleitet.

HTTP Basic Auth unter Verwendung der TYPO3-Site-Konfiguration

Christoph Lehmann entwickelte EXT:httpbasicauth. HTTP Basic Auth über Site-Konfiguration

Die meisten Probleme entstehen durch eine Base, die nicht zur aufgerufenen URL passt, eine deaktivierte oder nicht übersetzte Sprache oder eine Base Variant, die im falschen Kontext greift. Prüfen Sie zuerst diese Punkte.

404 nach Änderung der Base

  • Verwenden Sie die vollständige URL mit Schema, zum Beispiel example.org, statt / oder einer reinen Domain.
  • Verwenden Sie dieselbe rootPageId nicht in zwei Site-Konfigurationen. TYPO3 nimmt dann die zuletzt definierte Website.
  • Nach einer manuellen Änderung der config.yaml führen Sie vendor/bin/typo3 cache:flush aus und vergleichen das Ergebnis mit vendor/bin/typo3 site:show <identifier>.

Sprache erscheint nicht im Frontend

  • Prüfen Sie enabled: true. Eine deaktivierte Sprache bleibt für Redakteure im Backend verfügbar, ist im Frontend aber ausgeblendet.
  • Mit fallbackType: strict werden Datensätze ohne Übersetzung nicht ausgegeben. Nutzen Sie fallbackType: fallback mit fallbacks: '0', wenn die Standardsprache die Lücken füllen soll (Language configuration).

Falsche Base Variant greift

  • Bedingungen wie applicationContext == "Development" hängen vom Application Context des Servers ab, der meist über die Umgebungsvariable TYPO3_CONTEXT gesetzt wird.
  • Seit TYPO3 v13.0 schlagen anfrageabhängige Funktionen wie ip() in Base-Variant-Bedingungen mit der Exception #1686745105 fehl. Nutzen Sie stattdessen applicationContext oder getenv() (Base variants).

Brauche ich in TYPO3 v13 oder v14 noch einen sys_template-Datensatz?

Nein, er ist seit TYPO3 v13.1 optional. Eine Website kann setup.typoscript und constants.typoscript neben ihrer config.yaml laden, dazu das TypoScript der Site Sets in ihren Dependencies. Ein sys_template-Datensatz wird danach angewendet. Wenn Sie einen behalten, deaktivieren Sie dessen Clear-Flags, sonst wird das TypoScript der Sets gelöscht (TYPO3 Changelog #103439).

Was ist der Unterschied zwischen Site Settings und TypoScript-Konstanten?

Site Settings werden pro Website in der settings.yaml definiert und lassen sich in PHP mit $site->getSettings(), in TypoScript und Page TSconfig als Konstanten und in Fluid über den SiteProcessor auslesen. Konstanten in einem sys_template-Datensatz gibt es nur in TypoScript. Seit TYPO3 v13.1 können Settings in der settings.definitions.yaml Typen und Standardwerte erhalten.

Wie konfiguriere ich robots.txt und sitemap.xml pro Website?

Legen Sie statische Routen im Abschnitt routes der config.yaml an. Nutzen Sie type: staticText für die robots.txt und type: uri mit t3://page?uid=1&type=1533906435 für die XML-Sitemap der Systemextension EXT:seo. Alternativ ordnen Sie sitemap.xml diesem Seitentyp mit einem PageType Route Enhancer zu.

Danke, dass Sie den langen TYPO3-Artikel gelesen haben :)

Ich hoffe, Sie lernen und erforschen, um Ihre Kenntnisse in der coolen TYPO3-Site-Konfiguration zu verbessern. Lassen Sie uns schnell wie unten beschrieben abschließen.

  • Verwenden Sie für Ihre kommende TYPO3-Website, unabhängig davon, ob sie auf einer TYPO3 Template oder einer individuellen TYPO3 Entwicklung basiert, niemals den klassischen Ansatz (z. B. TypoScript-Konfiguration), sondern arbeiten Sie ausschließlich mit dem modernen Ansatz der TYPO3-Websiteverwaltung.
  • Üben Sie weiterhin das Backend-Modul für die TYPO3-Site-Verwaltung mit Funktionen für mehrere Domänen, mehrere Sprachen usw.
  • Lernen Sie, basierend auf Ihrem Projekt, die Routing-Funktion mit config.yaml
  • Als TYPO3-Integrator/Entwickler, gut verstandene Architektur von config.yaml
  • Sie sollten die TYPO3-Kontextumgebung als gute Praxis bei der Entwicklung von TYPO3-Projekten betrachten.
  • Informieren Sie sich über Tipps und Tricks sowie über verfügbare nützliche TYPO3-Erweiterungen von Drittanbietern, die Ihnen helfen, die Konfiguration Ihrer TYPO3-Site zu verbessern.

Versuchen Sie, benutzerdefinierte Konfigurationen auf mittlerem bis fortgeschrittenem Niveau in config.yaml zu implementieren.
Hatten Sie Probleme bei der Konfiguration der TYPO3-Site-Verwaltung? Ich beantworte gerne alle Fragen im Kommentarfeld.

Und wenn Sie sehen möchten, wie sich TYPO3 und AI gemeinsam weiterentwickeln, besuchen Sie das TYPO3 AI Universe für Ideen, Tools und Inspiration.

Bringen Sie Ihr Site-Management auf die nächste Ebene mit TYPO3 AI, das Konfigurationen automatisiert und Ihren Workflow optimiert!

Ich wünsche Ihnen eine glückliche TYPO3-Site-Verwaltung :)

Kostenlose TYPO3-Leitfäden mit Excel-Arbeitsblättern

Planen Sie Ihr nächstes Upgrade, Ihren Relaunch oder Ihre mehrsprachige Website mit kostenlosen PDF-Leitfäden, jeweils mit passender Excel-Tabelle.

Alle kostenlosen TYPO3-Leitfäden ansehen