---
title: "How it works"
manual: "Relaunch Redirects"
version: "main"
permalink: "https://docs.typo3.org/permalink/fuf/relaunch-redirects:how-it-works@main"
source: "HowItWorks/Index.rst"
rendered: "2026-10-17T17:10:51+00:00"
---

# How it works {#how-it-works}

## How an old URL is checked {#how-it-works-check}

The extension follows the URL step by step, in the order the TYPO3 frontend
answers a request, without sending one:

1.  The host of the old URL is mapped to the new site (see
    [Staging and production hosts](https://docs.typo3.org/permalink/fuf/relaunch-redirects:how-it-works-hosts@main)).
1.  The redirects of EXT:redirects are matched first, as the redirect
    middleware runs before the page is resolved. Disabled and expired
    redirects do not count.
1.  A redirect target is followed: a page is turned into its URL, a shortcut
    page into the URL of its target, a URL is checked again from step 2. A
    file must exist. External URLs are not checked.
1.  Without a redirect, the page router of the site resolves the path,
    including route enhancers and the language prefix.
1.  The page found has to be visible for an anonymous visitor: not hidden,
    not scheduled, not access restricted, not a folder, and translated if the
    URL is in another language.

The result is the first stop: a page (**Page exists** or
**Redirected**) or a dead end (**Missing** or
**Broken redirect**). More than five redirects in a row and loops count
as broken.

## Staging and production hosts {#how-it-works-hosts}

During a relaunch, the new site usually runs on a staging host, while the old
URLs carry the production host. The site configuration knows both: the
`base` is the production host, a `baseVariants` entry the staging
host.

The extension treats all of these hosts as the same site: the current base,
the configured base, every base variant and the host of the old URL. A redirect
stored for `www.example.org` is therefore found while the check runs on
`stage.example.org`, as it will be after the go-live.

## How suggestions are found {#how-it-works-suggestions}

Suggestions are only made for missing URLs and broken redirects. Candidates
are the pages of the site in the language of the old URL that a visitor can
open: no folders, links to external URLs, mount points, hidden or access
restricted pages.

Paths, slugs and titles are compared as words: lower case, umlauts written as
in TYPO3 slugs (`ü` becomes `ue`), file extensions such as
`.html` and `.php` and file names such as `index.html`
removed. Words that are not the same still count when one starts with the
other (`architekt` and `architekten`) or when they differ by a
typo (`mitarbeiter` and `mitarbeitende`).

See [4\. Decide](https://docs.typo3.org/permalink/fuf/relaunch-redirects:usage-decide@main) for the scores.

## Limitations {#limitations}

-   **Rewrite rules of the web server**

    Redirects in `.htaccess` or in the web server configuration are not
    seen, because no request is sent. A common example is a rule that removes
    `.html` from all URLs. Add these rules as redirects in TYPO3, or keep
    in mind that the extension reports such URLs as missing.

-   **Detail pages of plugins**

    A path with a route enhancer counts as found when the route matches. Route
    enhancers with aspects (for example `PersistedAliasMapper`) only
    match existing records. Without aspects, a record that no longer exists is
    only noticed by the plugin when the page is rendered, which the extension
    does not do.

-   **Language fallbacks**

    A page in another language counts as found when it is translated. Sites
    that show the default language as a fallback for untranslated pages may
    answer more URLs than reported.

-   **Workspaces**

    The check uses the live workspace.
