Site handling basics

TYPO3 site handling and configuration is the starting point for creating new web sites. The corresponding modules are found in the TYPO3 backend in the section Site management.

A site configuration consists of the following parts:

  • Base URL configurations: the domain(s) to access my site.
  • Language configuration: the languages of my site.
  • Error handling: error behavior of my site (for example, configuration of custom 404 pages).
  • Static routes: static routes of my site (for example, robots.txt on a per site base).
  • Routing configuration: How shall routing behave for this site.

When creating a new page on root level via the TYPO3 backend, a very basic site configuration is generated on the fly. It prevents immediate errors due to missing configuration and can also serve as a starting point for all further actions.

Most parts of the site configuration can be edited via the graphical interface in the backend module Site.

The Sites module in the TYPO3 backend.

Site configuration storage

When creating a new site configuration, a folder is created in the file system, located at <project-root>/config/sites/<identifier>/. The site configuration is stored in a file called config.yaml.

The configuration file

The following part explains the configuration file and options:

config/sites/<some_site>/config.yaml | typo3conf/sites/<some_site>/config.yaml
rootPageId: 12
base: 'https://example.org/'
websiteTitle: Example
languages:
  - languageId: '0'
    title: English
    navigationTitle: ''
    base: /
    locale: en_US.UTF-8
    iso-639-1: en
    hreflang: en-US
    direction: ltr
    typo3Language: default
    flag: gb
  - languageId: '1'
    title: 'danish'
    navigationTitle: Dansk
    base: /da/
    locale: da_DK.UTF-8
    iso-639-1: da
    hreflang: dk-DK
    direction: ltr
    typo3Language: default
    flag: dk
    fallbackType: strict
  - languageId: '2'
    title: Deutsch
    navigationTitle: ''
    base: 'https://example.net/'
    locale: de_DE.UTF-8
    iso-639-1: de
    hreflang: de-DE
    direction: ltr
    typo3Language: de
    flag: de
    fallbackType: fallback
    fallbacks: '1,0'
errorHandling:
  - errorCode: '404'
    errorHandler: Page
    errorContentSource: 't3://page?uid=8'
  - errorCode: '403'
    errorHandler: Fluid
    errorFluidTemplate: 'EXT:my_extension/Resources/Private/Templates/ErrorPages/403.html'
    errorFluidTemplatesRootPath: 'EXT:my_extension/Resources/Private/Templates/ErrorPages'
    errorFluidLayoutsRootPath: 'EXT:my_extension/Resources/Private/Layouts/ErrorPages'
    errorFluidPartialsRootPath: 'EXT:my_extension/Resources/Private/Partials/ErrorPages'
  - errorCode: '0'
    errorHandler: PHP
    errorPhpClassFQCN: MyVendor\ExtensionName\ErrorHandlers\GenericErrorhandler
routes:
  route: robots.txt
  type: staticText
  content: |
    Sitemap: https://example.org/sitemap.xml
    User-agent: *
    Allow: /
    Disallow: /forbidden/
Copied!

Most settings can also be edited via the Site Management > Sites backend module, except for custom settings and additional routing configuration.

Site identifier

The site identifier is the name of the folder in <project-root>/config/sites/ that contains your configuration file(s). When choosing an identifier, be sure to use ASCII, but you may also use -, _ and . for convenience.

rootPageId

Root pages are identified by one of these two properties:

  • They are direct descendants of PID 0 (the root root page of TYPO3).
  • They have the Use as Root Page property in pages set to true.

websiteTitle

The title of the website which is used in <title> tag in the frontend.

base

The base is the base domain on which a website runs. It accepts either a fully qualified URL or a relative segment "/" to react to any domain name. It is possible to set a site base prefix to /site1, /site2 or even example.com instead of entering a full URI.

This allows a site base as example.com with http and https protocols to be detected, although it is recommended to redirect HTTP to HTTPS, either at the webserver level, via a .htaccess rewrite rule or by adding a redirect in TYPO3.

Please note: when the domain is an Internationalized Domain Name (IDN) containing non-Latin characters, the base must be provided in an ASCII-Compatible Encoded (ACE) format (also known as "Punycode"). You can use a converter to get the ACE format of the domain name.

languages

Available languages for a site can be specified here. These settings determine both the availability of the language and the behavior. For a detailed description see Language configuration.

errorHandling

The error handling section describes how to handle error status codes for this website. It allows you to configure custom redirects, rendering templates, and more. For a detailed description, see error handling.

routes

The routes section is used to add static routes to a site, for example a robots.txt or humans.txt file that depends on the current site (an does not contain the same content for the whole TYPO3 installation). Read more at static routes.

routeEnhancers

While page routing works out of the box without any further settings, route enhancers allow configuring routing for TYPO3 extensions. Read more at Advanced routing configuration (for extensions).