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. pagemachine/typo3-flat-urls

ActiveTypo3-cms-extension

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

Flat URLs (like Stack Overflow) for TYPO3

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

Since Oct 25Pushed 2mo 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 1mo ago

READMEChangelog (10)Dependencies (23)Versions (28)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

58

—

FairBetter than 98% of packages

Maintenance78

Regular maintenance activity

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% 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 ~138 days

Recently: every ~222 days

Total

23

Last Release

84d 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 (387 commits)")[![renovate[bot]](https://avatars.githubusercontent.com/in/2740?v=4)](https://github.com/renovate[bot] "renovate[bot] (34 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

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.

20229.9k](/packages/eliashaeussler-typo3-warming)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)[eliashaeussler/typo3-form-consent

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

1481.0k](/packages/eliashaeussler-typo3-form-consent)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[neos/flow-development-collection

Flow packages in a joined repository for pull requests.

144179.3k3](/packages/neos-flow-development-collection)

PHPackages © 2026

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