PHPackages                             flowpack/seo-routing - 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. flowpack/seo-routing

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

flowpack/seo-routing
====================

Flow Framework Router to ensure a trailing slash in Neos.

2.0.0(2mo ago)15.7k↑36.4%2[1 issues](https://github.com/Flowpack/Flowpack.SeoRouting/issues)MITPHPPHP ^8.1CI passing

Since Jan 20Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/Flowpack/Flowpack.SeoRouting)[ Packagist](https://packagist.org/packages/flowpack/seo-routing)[ RSS](/packages/flowpack-seo-routing/feed)WikiDiscussions main Synced yesterday

READMEChangelog (9)Dependencies (15)Versions (12)Used By (0)

Flowpack.SeoRouting
===================

[](#flowpackseorouting)

- [Flowpack.SeoRouting](#flowpackseorouting)
    - [Sponsoring](#sponsoring)
    - [Introduction](#introduction)
    - [Features](#features)
    - [Installation](#installation)
    - [Optional steps](#optional-steps)
    - [Configuration](#configuration)
        - [Standard Configuration](#standard-configuration)
        - [Trailing slash mode](#trailing-slash-mode)
        - [Blocklist for redirects](#blocklist-for-redirects)
    - [Thank you](#thank-you)

Sponsoring
----------

[](#sponsoring)

Thank you [Biallo &amp; Team GmbH](https://www.biallo.de/) for sponsoring the work from Sandstorm on this package.

Introduction
------------

[](#introduction)

This package allows you to enforce a trailing slash or enforce no trailing slash and/or lower case urls in Flow/Neos.

Features
--------

[](#features)

Main features:

- **trailingSlash**: ensure that all rendered internal links in the frontend end with a trailing slash (e.g. `example. com/test/` instead of `example.com/test`) and all called URLs without trailing slash will be redirected to the same page with a trailing slash or the opposite (e.g. `example.com/test` instead of `example.com/test/`)
- **toLowerCase**: ensure that camelCase links gets redirected to lowercase (e.g. `example.com/lowercase` instead of `example.com/lowerCase`)

You can de- and activate both of them.

Another small feature is to restrict all *new* Neos pages to have a lowercased `uriPathSegment`. This is done by extending the `NodeTypes.Document.yaml`.

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

[](#installation)

Just require it via composer:

```
composer require flowpack/seo-routing

```

Optional steps
--------------

[](#optional-steps)

If you want to use the *toLowerCase* feature you should execute the migration that comes with this package:

```
./flow nodemigration:execute 20250124153030 --force

```

Warning

This migration transforms all the URLs of all your nodes to lowercase. It's irreversible.

Configuration
-------------

[](#configuration)

### Standard Configuration

[](#standard-configuration)

In the standard configuration we have activated the trailingSlash (to redirect all uris without a / at the end to an uri with / at the end) and do all redirects with a 301 http status.

*Note: The lowercase redirect is deactivated by default, because you have to make sure, that there is no Neos page with an `uriPathSegment` with camelCase or upperspace letters - this would lead to redirects in the neverland. You can achieve this by running the migration that ships with this package, see [installation](#installation).*

```
Flowpack:
  SeoRouting:
    redirect:
      enable:
        trailingSlash: true
        toLowerCase: false
      trailingSlashMode: 'add'
      statusCode: 301
    blocklist:
      '/neos.*': true

```

### Trailing slash mode

[](#trailing-slash-mode)

You can set the `trailingSlashMode` to `add` or `remove`. For this setting to have an effect you have to set `trailingSlash` to true.

This effects redirects and all rendered internal urls.

### Blocklist for redirects

[](#blocklist-for-redirects)

By default, all `/neos` URLs are ignored for redirects. You can extend the blocklist array with regex as you like:

```
Flowpack:
  SeoRouting:
    blocklist:
      '/neos.*': true
```

Thank you
---------

[](#thank-you)

This package originates from .

Thank you, T3N and associates for your work.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance65

Regular maintenance activity

Popularity27

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% 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 ~56 days

Recently: every ~110 days

Total

9

Last Release

78d ago

Major Versions

1.3.3 → 2.0.02026-04-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/25d49a6af82b72d2764774a05c307808375016d7aeaaef3862472a6580ff38a7?d=identicon)[flowpack](/maintainers/flowpack)

---

Top Contributors

[![t-heuser](https://avatars.githubusercontent.com/u/53174153?v=4)](https://github.com/t-heuser "t-heuser (24 commits)")[![jonnitto](https://avatars.githubusercontent.com/u/4510166?v=4)](https://github.com/jonnitto "jonnitto (4 commits)")

---

Tags

case-insensitiveflowlowercaselowercase-conversionneosneoscmsseotrailing-slashurls

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/flowpack-seo-routing/health.svg)

```
[![Health](https://phpackages.com/badges/flowpack-seo-routing/health.svg)](https://phpackages.com/packages/flowpack-seo-routing)
```

###  Alternatives

[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[google/cloud-core

Google Cloud PHP shared dependency, providing functionality useful to all components.

346132.9M112](/packages/google-cloud-core)[toin0u/geocoder-laravel

Geocoder Service Provider for Laravel

7615.4M17](/packages/toin0u-geocoder-laravel)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[oat-sa/tao-core

TAO core extension

66143.7k122](/packages/oat-sa-tao-core)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

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