PHPackages                             pagemachine/typo3-flat-urls - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pagemachine/typo3-flat-urls

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

pagemachine/typo3-flat-urls
===========================

Flat URLs (like Stack Overflow) for TYPO3

3.3.0(2mo ago)738.0k↓38.1%2[2 issues](https://github.com/pagemachine/typo3-flat-urls/issues)GPL-3.0-or-laterPHPPHP ^8.2CI passing

Since Oct 25Pushed 2w ago3 watchersCompare

[ Source](https://github.com/pagemachine/typo3-flat-urls)[ Packagist](https://packagist.org/packages/pagemachine/typo3-flat-urls)[ RSS](/packages/pagemachine-typo3-flat-urls/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (48)Versions (29)Used By (0)

Flat URLs [![CI](https://github.com/pagemachine/typo3-flat-urls/workflows/CI/badge.svg)](https://github.com/pagemachine/typo3-flat-urls/workflows/CI/badge.svg)
===============================================================================================================================================================

[](#flat-urls-)

Flat URLs (like Stack Overflow) for TYPO3

Installation
------------

[](#installation)

This extension is installable from various sources:

1. Via [Composer](https://packagist.org/packages/pagemachine/typo3-flat-urls):

    ```
     composer require pagemachine/typo3-flat-urls

    ```
2. From the [TYPO3 Extension Repository](https://extensions.typo3.org/extension/flat_urls/)
3. From [Github](https://github.com/pagemachine/typo3-flat-urls/releases)

Purpose
-------

[](#purpose)

The purpose of this extension is to enforce so called "flat URLs" throughout the TYPO3 frontend. Thus instead of `my/deeply/nested/page/` you will always get URLs like `10/page/` (thus page UID and title), no matter the actual page hierarchy managed in the backend.

Page translations will use the same UID as their original page but with translated titles. Thus you need to make sure that the language parameter (`_language`) is part of the URL to avoid duplicate URLs with multiple translations.

For flat URLs this extension manages the slugs of pages, thus these are not editable anymore. Whenever a page is edited the slugs are updated automatically so they stay in sync with their related fields (title by default). If a page slug changes, a redirect is added automatically. Conflicting redirects when changing slugs back and forth are removed to ensure pages are always accessible.

Similar to Stack Overflow pages requested only by page UID will be redirected to their full URL. This means that e.g.  redirects to . This also works for translations.

Command
-------

[](#command)

If you have existing pages when adding this extension or if you want to ensure a clean state you can run the `slugs:update` CLI command. It will update the slugs of all pages and page translations.

Testing
-------

[](#testing)

All tests can be executed with the shipped Docker Compose definition:

```
docker compose run --rm app composer build

```

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance86

Actively maintained with recent releases

Popularity34

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 89.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~134 days

Recently: every ~236 days

Total

24

Last Release

75d ago

Major Versions

1.1.1 → 2.0.02020-09-23

2.0.3 → 3.0.02021-11-26

PHP version history (7 changes)1.0.0PHP ^7.0

2.0.0PHP ^7.2

3.0.0PHP ^7.4

3.0.2PHP ^7.4 || ^8.0

3.1.0PHP ^8.0

3.1.4PHP ^8.1

3.2.0PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10812548?v=4)[Pagemachine AG](/maintainers/pagemachine)[@pagemachine](https://github.com/pagemachine)

---

Top Contributors

[![mbrodala](https://avatars.githubusercontent.com/u/5037116?v=4)](https://github.com/mbrodala "mbrodala (408 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (35 commits)")[![renovate-bot](https://avatars.githubusercontent.com/u/25180681?v=4)](https://github.com/renovate-bot "renovate-bot (12 commits)")[![rkiciak](https://avatars.githubusercontent.com/u/6204135?v=4)](https://github.com/rkiciak "rkiciak (1 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (1 commits)")

---

Tags

flatstackoverflowtypo3typo3-cms-extensionurlstypo3urlsflatstackoverflow

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/pagemachine-typo3-flat-urls/health.svg)

```
[![Health](https://phpackages.com/badges/pagemachine-typo3-flat-urls/health.svg)](https://phpackages.com/packages/pagemachine-typo3-flat-urls)
```

###  Alternatives

[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22260.2k](/packages/eliashaeussler-typo3-warming)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[pagemachine/searchable

TYPO3 extension to index and search content with Elasticsearch

1139.9k](/packages/pagemachine-searchable)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
