https://github.com/b13/justincase
TYPO3 Extension - No matter what case your URL is, we'll hit it.
https://github.com/b13/justincase
Last synced: about 1 year ago
JSON representation
TYPO3 Extension - No matter what case your URL is, we'll hit it.
- Host: GitHub
- URL: https://github.com/b13/justincase
- Owner: b13
- License: gpl-2.0
- Created: 2019-07-24T14:33:14.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2025-01-10T11:59:01.000Z (over 1 year ago)
- Last Synced: 2025-03-31T16:17:40.364Z (over 1 year ago)
- Language: PHP
- Size: 56.6 KB
- Stars: 16
- Watchers: 2
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TYPO3 Extension "just in case" - No matter what case your URL is, we'll hit it.
When your marketing team has accidentally pushed a campaign with mixed case URLs, they should not run into 404s.
This TYPO3 extension solves your pain - just in case.
## What does it do?
By default, TYPO3 v9 is strict when you're actual page is called `https://b13.com/lets-connect/` but your marketing
dudes name it `https://b13.com/Lets-Connect/`. TYPO3 v9 saves URLs as lower-case by default.
A simple PSR-15 based middleware transforms your incoming URL into lower-case and you should be fine, as
both URLs would work for the users.
## Installation
Use it via `composer req b13/justincase` or install the Extension `justincase` from the TYPO3 Extension Repository.
_justincase_ requires TYPO3 v9.5.0 or later.
## Configuration
As a web developer, sometimes the team wants a 307 redirect, and sometimes to just work as everything would be lower-case.
_justincase_ does the latter ("just pretend it works") and receives the URL, processes the URL further by default, however
you can configure the extension on a per-site basis to do redirects instead, by modifying the Languages array of the
site configuration yaml:
languages:
-
title: English
...
redirectOnUpperCase: true
# in case you want to use a status code, other than 307
redirectStatusCode: 303
If you wish to enable redirect for all languages, add these lines at the bottom of the site configuration yaml instead:
settings:
redirectOnUpperCase: true
# in case you want to use a status code, other than 307
redirectStatusCode: 303
Please note that this option only works for GET or HEAD requests.
## Events
a ```BeforeMiddlewareIsAppliedEvent``` is fired before LowerCaseUri Middleware is applied.
you can prevent applying Middleware by calling `event->doNotApply`
## Caveats
If specific route enhancers check on camel-case (e.g. `{order}/paymentForm/`) this might lead to unexpected behaviours
and 404 pages.
## License
As TYPO3 Core, _justincase_ is licensed under GPL2 or later. See the LICENSE file for more details.
## Background, Credits & Further Maintenance
This extension was created as a show-case on what you can do with middlewares for TYPO3 v9 and customize
so many things. See https://forge.typo3.org/issues/87544 for the initial request.
TYPO3 community often requests functionality, which can be put in small and efficient extensions, and _justincase_ does
exactly that, without having to burden everything into TYPO3 Core.
_justincase_ was initially created by Daniel Goerz and Benni Mack for [b13, Stuttgart](https://b13.com), with the nice
support from Matthias Stegmann for providing the extension name.
[Find more TYPO3 extensions we have developed](https://b13.com/useful-typo3-extensions-from-b13-to-you) that help us deliver value in client projects. As part of the way we work, we focus on testing and best practices to ensure long-term performance, reliability, and results in all our code.