---
title: "Speaking URLs (route enhancer)"
manual: "Job board"
version: "main"
permalink: "https://docs.typo3.org/permalink/jweiland/jobboard:configuration-routing@main"
source: "Configuration/Routing.rst"
rendered: "2026-10-22T13:15:25+00:00"
---

# Speaking URLs (route enhancer) {#configuration-routing}

The extension ships a route enhancer for the detail view in
`EXT:jobboard/Configuration/Routes/Default.yaml`. It creates URLs like
`https://example.org/jobs/web-developer-m-f-d` instead of URLs with
query parameters.

TYPO3 13.4 cannot load route enhancers from site sets. Import the file in
your site configuration:

**config/sites/\<site-identifier>/config.yaml**

```yaml
imports:
  - { resource: 'EXT:jobboard/Configuration/Routes/Default.yaml' }

routeEnhancers:
  JobboardPlugin:
    limitToPages: [42]

```

The enhancer has the key `JobboardPlugin`. It does not define
`limitToPages`, because lists of imported YAML files are merged and
cannot be replaced. Add `limitToPages` with the UID of your job board
page below the same key, as shown above.

## How it works {#configuration-routing-details}

-   Route `/{job_title}` maps to the action `detail` with the
    argument `job`. The default action is `list`.
-   The aspect `PersistedAliasMapper` resolves `job_title`
    with the field "URL segment" (`path_segment`) of the job.
-   The URL segment is created from the job title when a job is saved, also
    for imported jobs. It is unique in the whole job table, because the
    aspect resolves it table-wide. Changing the title does not change the
    URL segment. Editors can regenerate it in the job record.
-   For jobs without URL segment, for example after a migration, run the
    upgrade wizard `jweilandJobboardJobPathSegmentUpdate`, see
    [Upgrade wizards](https://docs.typo3.org/permalink/jweiland/jobboard:upgrade@main).

## URL of the PDF version {#configuration-routing-pdf}

The PDF version of a job uses the page type `1575903427`. Without
further configuration, its URL ends with `?type=1575903427`. To get a
speaking suffix, map the page type with a `PageType` decorator:

**config/sites/\<site-identifier>/config.yaml**

```yaml
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    default: ''
    map:
      job.pdf: 1575903427

```

If your site already has a `PageType` decorator, add the mapping to
it instead of creating a second one.
