Support the documentation
This documentation was written by volunteers. Please help support our effort:
This page is not yet fully completed - we are still working on the content here. Expect some rough edges 🙃
The router makes sure that a requested URI finds the correct controller to handle the request. So we can differenziate between two types of routes:
- Routes that point to a package controller, where you implemented your own PHP. Learn more about this here.
- Routes that point to a document node. (see below)
Neos saves all content in the Content Repository in a tree structure. To map routes to document nodes, each document has a
An example, if your document nodes look like this:
Root node |-- Page 1 (uriPathSegment: 'page_1') |-- Subpage 1 (uriPathSegment: 'subpage_1') |-- Subpage 2 (uriPathSegment: 'subpage_2') |-- Page 2 (uriPathSegment: 'page_1') |-- Subpage 1 (uriPathSegment: 'subpage_1') |-- Subpage 2 (uriPathSegment: 'subpage_2')
/page_1 would be matched to the document "Page 1", which will then be rendered.
/page_1/subpage_2 will be split based on the slashed. The first part matches the document node "Page 1", the second matches "Subpage 2". So Subpage 2 will be rendered.
Since we have a tree structure you can see that two
uriPathSegment: 'subpage_1'. This is ok, since they have a different parent.
If you define content dimensions (e.g. languages) they will be the first part of the route. Read more about content dimension routing here.
Neos\Neos\Routing\FrontendNodeRoutePartHandlerwhich matches all document node URIs and rendered the corresponding document node.
So there's actually just one routing mechanism, which you will most likely not need to touch.