# This file defines user-definable routes for the frontend of your Bolt website. # Check below for examples, or read the documentation at # https://docs.bolt.cm/templates/templates-routes#routing # ------------------------------------------------------------------------------ # Place your own routes here, that have a HIGHER priority than the default routes. # ------------------------------------------------------------------------------ # These are the routes defining the default behaviour of Bolt's frontend. # Changing these might give unexpected results or even break your website. If # possible, only add NEW routes above or below these. # WIRED - Most routes are custom and can be found in the local wired extension's controller homepage: path: / defaults: _controller: controller.frontend:homepage preview: path: /preview/{contenttypeslug} defaults: _controller: controller.frontend:preview requirements: contenttypeslug: controller.requirement:anyContentType # WIRED tags overview taxonomylist: path: /{taxonomytype} defaults: _controller: cnd-design.taxonomies.controller:taxonomies requirements: # taxonomytype: controller.requirement:anyTaxonomyType taxonomytype: tags # AMP Route ampcontentlink: path: /amp/{contenttypeslug}/{slug} defaults: _controller: cnd-design.themedroute.controller:record zone: amp theme: gq-amp requirements: contenttypeslug: article|service # WIRED - search #search: # path: '/search' # defaults: # _controller: 'Bolt\Controllers\Frontend::search' # WIRED - We need a different zone to stop extensions from adding scripts # ".html" is redirected in some unknown and magic lands. ".htm" works ... taxonomylink: path: /{taxonomytype}/{slug} defaults: _controller: controller.frontend:taxonomy requirements: # taxonomytype: controller.requirement:anyTaxonomyType taxonomytype: tag|collections slug: '[a-z0-9-_]+' contentlink: path: /{contenttypeslug}/{slug} defaults: _controller: controller.frontend:record requirements: # contenttypeslug: controller.requirement:anyContentType contenttypeslug: article|portal|author|video|serie|service|custom # contentlisting: # path: /{contenttypeslug} # defaults: # _controller: controller.frontend:listing # requirements: # contenttypeslug: controller.requirement:pluralContentTypes # ------------------------------------------------------------------------------ # Place your own routes here, that have a LOWER priority than the default routes. # ------------------------------------------------------------------------------ # Routes examples: # Example to route old '.html' pages to pages genereated by bolt. # oldpages: # path: /{slug}.html # defaults: # _controller: controller.frontend:record # contenttypeslug: page # requirements: # slug: [a-z0-9-_]+ # Example route with a host requirement # example: # path: /example # defaults: # _controller: controller.frontend:record # contenttypeslug: page # slug: example # host: www.mydomain.org # Example override for a specific contenttype # pagebinding: # path: /{slug} # defaults: # _controller: controller.frontend:record # contenttypeslug: page # contenttype: pages # Example single record override # aboutbinding: # path: /about # defaults: # _controller: controller.frontend:record # contenttypeslug: page # slug: about # recordslug: page/about # Supported internal defaults are: # _controller the controller class::method to be called # _before the before to call, if non-existent the 'before()' of the controller will be called # _after the after to call, if non-existent the 'after()' of the controller will be called # # Both _before and _after support a shortcut notation which re-uses the controller class: '::before' # Example: rendering a "static" template from the current theme with no associated record/content. # Note that you can still load and render content from within the template. # templatebinding: # path: /static-page # defaults: # _controller: controller.frontend:template # template: static-page