TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-86214:
|
||||
|
||||
=========================================
|
||||
Feature: #86214 - Implement static routes
|
||||
=========================================
|
||||
|
||||
See :issue:`86214`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The site configuration module now has configuration options to add static routes on a per site basis.
|
||||
Take the following example: In a multi-site installation you want to have different :file:`robots.txt` files for each site that
|
||||
should be reachable at ``/robots.txt`` on each site. You can now add a static route "robots.txt" to your site and
|
||||
define which content should be delivered.
|
||||
|
||||
The TYPO3 SEO extension provides a sitemap for TYPO3 out of the box, but it's only reachable at a specific page type.
|
||||
To enable easier access you can now configure a static route :file:`sitemap.xml` that maps to that page type (see example
|
||||
below).
|
||||
|
||||
Routes can be configured as toplevel files (as in the :file:`sitemap.xml` and :file:`robots.txt` case) but may also be configured
|
||||
to deeper route paths (`my/deep/path/to/a/static/text` for example). Matching is done on the full path but without any
|
||||
parameters.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Static routes can be configured via the user interface or directly in the yaml configuration.
|
||||
There are two options: deliver static text or resolve a TYPO3 URL.
|
||||
|
||||
StaticText
|
||||
----------
|
||||
|
||||
The :yaml:`staticText` option allows to deliver simple text content. The text can be added through a text field directly in
|
||||
the site configuration. This is suitable for files like :file:`robots.txt` or :file:`humans.txt`.
|
||||
|
||||
YAML Configuration Example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
route: robots.txt
|
||||
type: staticText
|
||||
content: |
|
||||
Sitemap: https://example.com/sitemap.xml
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Disallow: /forbidden/
|
||||
|
||||
TYPO3 URL (t3://)
|
||||
-----------------
|
||||
|
||||
The type :yaml:`uri` for TYPO3 URL provides the option to render either a file, page or url. Internally a request to the
|
||||
file or URL is done and its content delivered.
|
||||
|
||||
YAML Configuration Examples:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
-
|
||||
route: sitemap.xml
|
||||
type: uri
|
||||
source: 't3://page?uid=1&type=1533906435'
|
||||
-
|
||||
route: favicon.ico
|
||||
type: uri
|
||||
source: 't3://file?uid=77'
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Static route resolving is implemented as a PSR-15 middleware. If the route path requested matches any one of the
|
||||
configured site routes, a response is directly generated and returned. This way there is minimal bootstrap code to
|
||||
be executed on a static route resolving request, mainly the site configuration needs to be loaded. Static routes cannot
|
||||
get parameters as the matching is done solely on the path level.
|
||||
|
||||
|
||||
.. index:: Frontend, ext:frontend
|
||||
Reference in New Issue
Block a user