Research for the new redirect handler ui (ongoing)

As I’m currently rewriting the RedirectHandler.Ui package and extending the connected packages with new features I’m also researching what other plugins for other CMS are doing well or not so good from my perspective.
The goal is not to repeat mistakes and understand how they solve certain issues and get inspired.

This document is work-in-progress and feedback is very welcome.
You can find the related issues to the implementation for Neos here https://github.com/orgs/neos/projects/17.

Basis for the research is a list of use cases that I got from stakeholders and from my own experience in various projects:

Use cases

A single master editor who only works in Neos to manage redirects

  • They should be able to add and modify bundles of 10-20 redirects really fast
  • They should be able to understand after years why redirects were made
  • They should have hints which status code means what (in the beginning at least)
  • They need validators that help them preventing mistakes
  • They should have hints where redirects come from (when the CMS generates them too)
  • They should be able to import redirects after a relaunch or merge with another site
  • Works with dimensions (f.e. language)

A group of 5+ editors work together in one system and also work on redirects together

  • They should see who created or edited a redirect
  • They should understand why a redirect was made
  • They should see when a redirect was made
  • They should see when and how long a redirect should be valid (e.g. marketing campaigns)
  • They should be able to bulk import or export many redirects
  • They should be able to quickly go through 100s of redirects to find issues
  • They should have hints which status code means what
  • They need validators that help them preventing mistakes
  • They should have hints where redirects come from (when the CMS generates them too)
  • They should get help cleaning up old redirects
  • As the team will change more often over time, new editors need to learn the system fast
  • Works with dimensions (f.e. language)

CMS works headless

  • The CMS should be able to export the redirects in a format for web servers or offer interfaces for this

What other CMS are doing

I did research in CraftCMS, Wordpress and TYPO3. The pros & cons are from my perspective based on the use cases I defined. I’m currently also looking for other CMS with good implementations.
So pointers are very welcome!

TYPO3 (Redirects as core feature)


The TYPO3 version is very tidy and has a structure that editors know from the rest of the system.
From my perspective, more clicks are needed to add f.e. 20 redirects in bulk because of the separate dialog.
At first I thought the form at the top of the list would allow me to add redirects, but is just for the search.
I like that

  • :white_check_mark: Domain from dropdown or custom
  • :white_check_mark: Choose target from page tree (optional)
  • :white_check_mark: Search, Filter, Sort
  • :white_check_mark: Options for SSL, Get parameter forwarding etc.
  • :white_check_mark: Regex Redirects
  • :x: Filter could be mistaken as creation form (Send label)
  • :x: Adding new one, extra Dialog
  • :x: No importer & exporter
  • :x: No metadata
  • :x: Target not visible in overview when target is something like „foo“
  • :x: Linkfield shows warning when target is something like „/foo“
  • :x: Endless redirects possible
  • :x: No 4xx statuses
  • :x: No update to related redirects when adding one
  • :x: Duplicates are not prevented

CraftCMS (with free “SEO” plugin)

Here I like that adding redirects is really fast and the plugin keeps me from adding duplicates.
I miss the search and filter possibilities in the list, but editing redirects is quite smooth.
Import & Export is completely missing.

  • :white_check_mark: Validator for duplicates and empty fields
  • :white_check_mark: Bulk add via textarea
  • :white_check_mark: Regex Redirects
  • :white_check_mark: Edit in place
  • :x: Tabindex/Autofocus not set initially
  • :x: Endless redirects possible
  • :x: No 4xx statuses
  • :x: No 307
  • :x: Endless redirects possible
  • :x: No search, sort, filter
  • :x: No custom source domain
  • :x: No metadata
  • :x: No help when entering target urls
  • :x: No update to related redirects when adding one

Wordpress (with free “YoastSEO” plugin)

The YoastSEO plugin solves quite a lot of problems and is the best of the ones I tested so far.
Finding redirects is easy and also adding new ones works fast.
Redirects can be stored in separate files or directly in a .htaccess with has its own pros & cons. Redirecting without database access is faster but for deployed websites you might not want the CMS to modify the htaccess file.
Importing and exporting redirects gives a lot of options.

  • :white_check_mark: Search, Sort, Filter
  • :white_check_mark: Bulk delete
  • :white_check_mark: Regex Redirects
  • :white_check_mark: Allow writing redirects to htaccess (Good for performance)
  • :white_check_mark: Imports from other plugins, htaccess and CSV & export
  • :white_check_mark: Warning when entering non existent target
  • :white_check_mark: Explanations for redirect types
  • :white_check_mark: Edit in place
  • :white_check_mark: Hide target field for 4xx statuses
  • :white_check_mark: Prevents duplicates
  • :x: Allow writing redirects to htaccess (Bad for CI and no nginx support)
  • :x: No Tabindex & Autofocus
  • :x: No autocomplete or page selection when entering target urls
  • :x: Endless redirects possible
  • :x: No update to related redirects when adding one
  • :x: No metadata

Joomla (Redirects as core module)


The redirect module in Joomla works similarly to the one in TYPO3. It first seems cleaner but several parts are a bit confusing, like the batch update form and “404 Hits”-column. But I assume with Joomla experience the interface works ok.
It has the option to add a bit of metadata to a redirect, but it’s missing a selectable status code and regex redirects. I like that the status of a redirect can be quickly changed via the list.

  • :white_check_mark: Search, Sort, Filter
  • :white_check_mark: Bulk delete
  • :white_check_mark: Prevents duplicates
  • :white_check_mark: Import via textarea
  • :white_check_mark: Comment field
  • :white_check_mark: Archive and enabled state (changeable via the list)
  • :x: No Tabindex & Autofocus
  • :x: No autocomplete or page selection when entering target urls
  • :x: Regex Redirects
  • :x: Status code not selectable
  • :x: Endless redirects possible
  • :x: No export
  • :x: Comments not visible in overview
  • :x: Redirects cannot be saved via “enter” key
  • :x: No update to related redirects when adding one
5 Likes

Added Joomla experience.

I like the idea of being able to put the redirects into the .htaccess file directly (if you do not need the hitcount etc.). For this to work with a deployment too we could simply add a cli command to regenerate the .htaccess links. But this is definitely a Prio B extension and not primarily a UI thing.

Yes. As I am currently also moving the code for exporting from the command controller into a service class, it will be possible to write more exporters to different formats.
That way we can export nginx rules, apache rules and so on.