{"id":26234871,"url":"https://github.com/flowpack/flowpack.seorouting","last_synced_at":"2026-04-09T15:02:39.862Z","repository":{"id":273349548,"uuid":"917730630","full_name":"Flowpack/Flowpack.SeoRouting","owner":"Flowpack","description":"Enfore trailing slash / case insensitive urls in Neos CMS","archived":false,"fork":false,"pushed_at":"2025-11-21T11:08:23.000Z","size":27,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-12-24T11:47:43.068Z","etag":null,"topics":["case-insensitive","flow","lowercase","lowercase-conversion","neos","neoscms","seo","trailing-slash","urls"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Flowpack.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-16T14:43:54.000Z","updated_at":"2025-11-11T12:38:50.000Z","dependencies_parsed_at":"2025-01-20T11:38:38.934Z","dependency_job_id":null,"html_url":"https://github.com/Flowpack/Flowpack.SeoRouting","commit_stats":null,"previous_names":["flowpack/flowpack.seorouting"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Flowpack/Flowpack.SeoRouting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowpack%2FFlowpack.SeoRouting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowpack%2FFlowpack.SeoRouting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowpack%2FFlowpack.SeoRouting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowpack%2FFlowpack.SeoRouting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Flowpack","download_url":"https://codeload.github.com/Flowpack/Flowpack.SeoRouting/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Flowpack%2FFlowpack.SeoRouting/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29194019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T07:37:03.739Z","status":"ssl_error","status_checked_at":"2026-02-07T07:37:03.029Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["case-insensitive","flow","lowercase","lowercase-conversion","neos","neoscms","seo","trailing-slash","urls"],"created_at":"2025-03-13T02:29:40.748Z","updated_at":"2026-02-07T12:32:27.478Z","avatar_url":"https://github.com/Flowpack.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flowpack.SeoRouting\n\n\u003c!-- TOC --\u003e\n\n* [Flowpack.SeoRouting](#flowpackseorouting)\n    * [Sponsoring](#sponsoring)\n    * [Introduction](#introduction)\n    * [Features](#features)\n    * [Installation](#installation)\n    * [Configuration](#configuration)\n        * [Standard Configuration](#standard-configuration)\n        * [Trailing slash mode](#trailing-slash-mode)\n        * [Blocklist for redirects](#blocklist-for-redirects)\n    * [Thank you](#thank-you)\n\n\u003c!-- TOC --\u003e\n\n## Sponsoring\n\nThank you [Biallo \u0026 Team GmbH](https://www.biallo.de/) for sponsoring the work from Sandstorm on this package.\n\n## Introduction\n\nThis package allows you to enforce a trailing slash or enforce no trailing slash and/or lower case urls in Flow/Neos.\n\n## Features\n\nMain features:\n\n- **trailingSlash**: ensure that all rendered internal links in the frontend end with a trailing slash (e.g. `example.\ncom/test/` instead of `example.com/test`) and all called URLs without trailing slash will be redirected to the same\n  page with a trailing slash or the opposite (e.g. `example.com/test` instead of `example.com/test/`)\n- **toLowerCase**: ensure that camelCase links gets redirected to lowercase (e.g. `example.com/lowercase` instead of\n  `example.com/lowerCase`)\n\nYou can de- and activate both of them.\n\nAnother small feature is to restrict all _new_ Neos pages to have a lowercased `uriPathSegment`. This is done by\nextending the `NodeTypes.Document.yaml`.\n\n## Installation\n\nJust require it via composer:\n\n`composer require flowpack/seo-routing`\n\nIf you want to use the *toLowerCase* feature you should execute the migration that comes with this package:\n\n`./flow node:migrate 20250124153030 --confirmation true`\n\nThis migration transforms all the URLs of all your nodes to lowercase. It's irreversible.\n\n## Configuration\n\n### Standard Configuration\n\nIn the standard configuration we have activated the trailingSlash (to redirect all uris without a / at the end to an uri\nwith / at the end) and do all redirects with a 301 http status.\n\n*Note: The lowercase redirect is deactivated by default, because you have to make sure, that there is\nno Neos page with an `uriPathSegment` with camelCase or upperspace letters - this would lead to redirects in the\nneverland. You can achieve this by running the migration that ships with this package,\nsee [installation](#installation).*\n\n```\nFlowpack:\n  SeoRouting:\n    redirect:\n      enable:\n        trailingSlash: true\n        toLowerCase: false\n      trailingSlashMode: 'add'  \n      statusCode: 301\n    blocklist:\n      '/neos.*': true\n```\n\n### Trailing slash mode\n\nYou can set the `trailingSlashMode` to `add` or `remove`. For this setting to have an effect you have to set\n`trailingSlash` to true.\n\nThis effects redirects and all rendered internal urls.\n\n### Blocklist for redirects\n\nBy default, all `/neos` URLs are ignored for redirects. You can extend the blocklist array with regex as you like:\n\n```yaml\nFlowpack:\n  SeoRouting:\n    blocklist:\n      '/neos.*': true\n```\n\n## Thank you\n\nThis package originates from https://github.com/t3n/seo-routing.\n\nThank you, T3N and associates for your work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowpack%2Fflowpack.seorouting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflowpack%2Fflowpack.seorouting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflowpack%2Fflowpack.seorouting/lists"}