Backend entry point

New in version 13.0

Before TYPO3 v13 the backend entry point path for accessing the backend has always been /typo3. Since TYPO3 v13 the backend entry point can be adjusted to something else. See Configuration and Migration.

The legacy entry point /typo3/index.php is no longer needed and therefore deprecated. See Legacy-free installation.

The TYPO3 backend URL is configurable in order to enable optional protection against application administrator interface infrastructure enumeration (WSTG-CONF-05). Both frontend and backend requests are handled by the PHP script /index.php to enable virtual administrator interface URLs.

The default TYPO3 backend entry point path /typo3 can be changed by specifying a custom URL path or domain name in $GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint'].

Adjusting the backend entry point does not take assets into account, only routing is adapted. That means Composer mode will use assets provided via _assets/ as before and TYPO3 legacy mode will serve backend assets from /typo3/* even if another backend URL is used and configured.

Configuration

The configuration can be done in the backend via Admin Tools > Settings > Configure Installation-Wide Options:

Configure the entry point via GUI

Configure the entry point via GUI

or manually in config/system/settings.php or config/system/additional.php.

Configure a specific path

config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint'] = '/my-specific-path';
Copied!

Now point your browser to https://example.org/my-specific-path to log into the TYPO3 backend.

Use a distinct subdomain

config/system/additional.php
$GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint'] = 'https://my-backend-subdomain.example.org';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] = '.example.org';
Copied!

Now point your browser to https://my-backend-subdomain.example.org/ to log into the TYPO3 backend.

Note that the $GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] is necessary, so that backend users can preview website pages or use the admin panel.

Legacy-free installation

The legacy entry point /typo3/index.php is no longer needed and deprecated in favor of handling all backend and frontend requests with /index.php. The entry point is still in place in case webserver configuration has not been adapted yet and the maintenance and emergency tool is still available via /typo3/install.php in order to work in edge cases like broken web server routing.

In Composer mode, an additional configuration option for the deactivation of the legacy entry point is provided, which can be defined in the project's composer.json.

/path/to/project/composer.json (Excerpt)
{
    "extra": {
        "typo3/cms": {
            "install-deprecated-typo3-index-php": false
        }
    }
}
Copied!

Migration

A silent update is in place which automatically updates the webserver configuration file when accessing the install tool, at least for Apache (.htaccess) and Microsoft IIS (web.config) webservers.

If you use a custom web server configuration you may adapt as follows.

Apache configuration

It is most important to rewrite all typo3/* requests to /index.php, but also RewriteCond %{REQUEST_FILENAME} !-d should be removed in order for a request to /typo3/ to be directly served via /index.php instead of the deprecated entry point /typo3/index.php.

Apache configuration before:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^typo3/(.*)$ %{ENV:CWD}typo3/index.php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
Copied!

Apache configuration after:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^typo3/(.*)$ %{ENV:CWD}index.php [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^.*$ %{ENV:CWD}index.php [QSA,L]
Copied!

NGINX configuration

NGINX configuration before:

location /typo3/ {
    absolute_redirect off;
    try_files $uri /typo3/index.php$is_args$args;
}
Copied!

NGINX configuration after:

location /typo3/ {
    absolute_redirect off;
    try_files $uri /index.php$is_args$args;
}
Copied!