PHPackages                             flownative/neos-customdocumenturirouting - 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. flownative/neos-customdocumenturirouting

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

flownative/neos-customdocumenturirouting
========================================

This allows to have custom document URI paths for document nodes

0.2.0(4y ago)41.5k5[1 PRs](https://github.com/flownative/neos-customdocumenturirouting/pulls)MITPHP

Since Nov 21Pushed 2y ago2 watchersCompare

[ Source](https://github.com/flownative/neos-customdocumenturirouting)[ Packagist](https://packagist.org/packages/flownative/neos-customdocumenturirouting)[ RSS](/packages/flownative-neos-customdocumenturirouting/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (9)Dependencies (1)Versions (14)Used By (0)

[![MIT license](https://camo.githubusercontent.com/4661abfe916186acde514558e7f040833cb63ba7098401a51ce339cbb2b4cf9e/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e737667)](http://opensource.org/licenses/MIT)[![Packagist](https://camo.githubusercontent.com/bde2aaf9d57041ca877e1f6d6d60044b7277ba4b3ae4c6a267c73327c36fb5e7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666c6f776e61746976652f6e656f732d637573746f6d646f63756d656e74757269726f7574696e672e737667)](https://packagist.org/packages/flownative/neos-customdocumenturirouting)[![Maintenance level: Fiendship](https://camo.githubusercontent.com/1e42f66452ae2f07329d87d031d01ae1825930fcd952c6a0f052ccfeaeaf0292/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696e74656e616e63652d2545322539392541312545322539392541312d6666363962342e737667)](https://www.flownative.com/en/products/open-source.html)

Custom Document URI paths for Neos
==================================

[](#custom-document-uri-paths-for-neos)

This allows to have custom document URI paths for document nodes. This means, independent from the URI path that is usually built from the uriPathSegments of each node, a document can be given a full, unique, custom URI path.

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

[](#installation)

`composer require flownative/neos-customdocumenturirouting`

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

[](#configuration)

After installing the package, by default it looks for a property called `uriPath` in document nodes.

The `uriPath` property can be added to your document nodes by using the provided `Flownative.Neos.CustomDocumentUriRouting:UriPathMixin`.

The used mixin node type name and property name can be changed in the settings, if you like to use a different name:

```
Flownative:
  Neos:
    CustomDocumentUriRouting:
      mixinNodeTypeName: 'Acme.Product:UriPathMixin'
      uriPathPropertyName: 'myCustomUriPathProperty'

```

Make sure that, if you configure a custom mixin node type name, that node type actually provides a property with the name you defined in `uriPathPropertyName`.

### Excluding paths from matching

[](#excluding-paths-from-matching)

In order to exclude specific request paths (e.g. public resources), the `matchExcludePatterns`setting exists. All given array values will skip the matching process for request paths that start with the value. The default shipped with the package is:

```
Neos:
  CustomDocumentUriRouting:
    matchExcludePatterns:
      - '_Resources'

```

Any URI starting with `_Resources` will be ignored by the package and passed through.

### A note about performance

[](#a-note-about-performance)

This package provides a custom node route part handler which will check if the current HTTP request matches a given uri path. The route part handler uses a Flow Query to do that. If the Flow Query finds too many nodes, because the criteria is too broad, frontend and backend performance can suffer, especially if your content repository contains thousands of nodes.

Therefore try to limit possible matches to a minimum: only use the configured mixin in those node types which actually need them. For example, if you have a custom "Landing Page" node type, you may want to define the `CustomDocumentUriRoutingMixin` as a super type. But what you won't do is assign that mixin to the `Neos.Neos:Document` node type - because that would match all possible document nodes in the system.

Credits
-------

[](#credits)

Development of this package has been sponsored by web&amp;co OG, Vienna, Austria.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 53.1% 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 ~109 days

Recently: every ~284 days

Total

13

Last Release

1781d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/10280881?v=4)[Flownative](/maintainers/flownative)[@flownative](https://github.com/flownative)

---

Top Contributors

[![kdambekalns](https://avatars.githubusercontent.com/u/95873?v=4)](https://github.com/kdambekalns "kdambekalns (17 commits)")[![robertlemke](https://avatars.githubusercontent.com/u/95582?v=4)](https://github.com/robertlemke "robertlemke (7 commits)")[![bwaidelich](https://avatars.githubusercontent.com/u/307571?v=4)](https://github.com/bwaidelich "bwaidelich (4 commits)")[![davidspiola](https://avatars.githubusercontent.com/u/7107011?v=4)](https://github.com/davidspiola "davidspiola (2 commits)")[![jobee](https://avatars.githubusercontent.com/u/5636715?v=4)](https://github.com/jobee "jobee (1 commits)")[![kitsunet](https://avatars.githubusercontent.com/u/324408?v=4)](https://github.com/kitsunet "kitsunet (1 commits)")

### Embed Badge

![Health badge](/badges/flownative-neos-customdocumenturirouting/health.svg)

```
[![Health](https://phpackages.com/badges/flownative-neos-customdocumenturirouting/health.svg)](https://phpackages.com/packages/flownative-neos-customdocumenturirouting)
```

###  Alternatives

[sitegeist/monocle

An living-styleguide for Neos that is based on the actual fusion-code

45315.9k10](/packages/sitegeist-monocle)[sitegeist/kaleidoscope

Responsive-images for Neos

29352.4k10](/packages/sitegeist-kaleidoscope)[flowpack/listable

Tiny extension for listing things

35209.0k7](/packages/flowpack-listable)[kaufmanndigital/gdpr-cookieconsent

A ready-to-run package, that integrates an advanced cookie consent banner into your Neos CMS site.

2540.7k](/packages/kaufmanndigital-gdpr-cookieconsent)[neos/seo

SEO configuration and tools for Neos

13990.5k24](/packages/neos-seo)[shel/neos-colorpicker

A plugin for Neos CMS which provides a colorpicker editor

1494.4k6](/packages/shel-neos-colorpicker)

PHPackages © 2026

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