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.

Changed in version 14.0

The legacy entry point /typo3/index.php is no longer needed and has been removed.

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.

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 removed 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!