PHPackages                             plan2net/sierrha - 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. plan2net/sierrha

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

plan2net/sierrha
================

404 'not found' and 403 'forbidden' error handlers. The 404 handler shows custom content for missing pages but not resources like CSS or JS. The 403 handler redirects to a login URL on unauthorized access.

13.4(1y ago)518.9k↓64.3%4[3 issues](https://github.com/plan2net/sierrha/issues)GPL-2.0-or-laterPHPPHP &gt;=8.2

Since Feb 19Pushed 1y ago4 watchersCompare

[ Source](https://github.com/plan2net/sierrha)[ Packagist](https://packagist.org/packages/plan2net/sierrha)[ RSS](/packages/plan2net-sierrha/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (3)Versions (18)Used By (0)

Ṣıẹrrḥa - Site Error Handler
============================

[](#ṣıẹrrḥa---site-error-handler)

Enhanced error handlers for TYPO3's site error handling system.

Features
--------

[](#features)

### 404 Not Found Handler

[](#404-not-found-handler)

- Displays content from a configurable TYPO3 page or external URL
- Falls back to standard TYPO3 error layout if content is unavailable
- Optimized handling for web resources (CSS, JS, fonts, etc.)
- Bandwidth-saving responses for static resources

### 403 Forbidden Handler

[](#403-forbidden-handler)

- Redirects unauthenticated users to a configurable login page
- Optional fallback page for users with insufficient permissions
- Configurable return URL parameter with marker support
- Falls back to 404 handler in other cases

Handlers
--------

[](#handlers)

### Page Not Found (HTTP Status 404)

[](#page-not-found-http-status-404)

Displays content from a page or external URL.

If the resource is unavailable or the content is empty, a message in the standard TYPO3 error layout is shown.

When the requested URL denotes a web resource (eg a CSS file) only a small response is sent to save bandwidth ("Regular expression for resource file extensions", see [Extension Manager Configuration](#extension-manager-configuration)).

The file extensions to be treated by default as web resources:

- css
- eot, ttf, woff, woff2
- gif, ico, jpg, jpeg, png, svg, webp
- js
- json
- xml

### Forbidden (HTTP Status 403)

[](#forbidden-http-status-403)

Redirects to a login URL if access to page without a session is not permitted.

If the user is already logged in, but has no access because of missing group rights he will be optionally redirected to a fallback page ("Show Content from Page on Missing Permissions", see [Site Configuration](#site-configuration)).

In any other case a 404 "Not found" error is triggered. TYPO3 will invoke the configured error handler.

Requirements
------------

[](#requirements)

- TYPO3 13 LTS, PHP 8.2+
- 404: A page/URL that contains a human-readable "page not found" message
- 403: A URL that performs a login and a redirect to a supplied URL (eg. extension "felogin")
- the web server must be able to reach itself under the configured domain

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

[](#installation)

Install via composer

```
composer require plan2net/sierrha
```

Extension Manager Configuration
-------------------------------

[](#extension-manager-configuration)

*Regular Expression for Resource File Extensions*:

This is the default regular expression.

`css|eot|gif|ico|jpe?g|js(?:on)|png|svg|ttf|webp|woff2?|xml`

*Enable Debug Mode*:

In case of configuration errors a detailed error will be shown when in *debug mode* or if the HTTP request comes from an IP listed in `$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask']`. Otherwise, the error will be passed on to be handled by TYPO3.

Site Configuration
------------------

[](#site-configuration)

### 404 "not found"

[](#404-not-found)

On tab "Error Handling" create a new handler.

**HTTP Error Status Code:** "404" **How to handle Errors:** "PHP Class"

Save the configuration.

**ErrorHandler Class Target (FQCN):** `Plan2net\Sierrha\Error\StatusNotFoundHandler`**Show Content from Page on Not Found:** TYPO3 page or external URL

### 403 "forbidden"

[](#403-forbidden)

On tab "Error Handling" create a new handler.

**HTTP Error Status Code:** "403" **How to handle Errors:** "PHP Class"

Save the configuration.

**ErrorHandler Class Target (FQCN):** `Plan2net\Sierrha\Error\StatusForbiddenHandler`**Login Page:** TYPO3 page or external URL **Show Content from Page on Missing Permissions:** TYPO3 page or external URL **Return Parameter for Login Page URL:** URL query parameter of the login page without leading ? or &amp;

*Note:* The parameter for the login page used by the extension "felogin" is `return_url=###URL###`.

### URL Markers

[](#url-markers)

The return parameter of the URL supports marker substitution.

MarkerDescription\###URL###current URL (URL encoded)\###URL\_BASE64###current URL base64 encoded (URL encoded)\###ISO\_639-1###current language as two letter ISO code (ISO 639-1)\###IETF\_BCP47###current language as IETF language tag (IETF BCP 47, RFC 5646/4646/3066/1766) aka "hreflang"Caching
-------

[](#caching)

Error pages are cached in TYPO3's page cache. For TYPO3 pages (not external URLs), the cache is automatically invalidated when page content changes.

Changelog
---------

[](#changelog)

- 0.4.3 TYPO3 CMS 13 and PHP 8.2 compatible release
- 0.4.2 PHP 8.1 compatible release
- 0.4.1 Prevent exception when language not available from request
- 0.4.0
    - Error pages are cached in TYPO3's page cache
    - Set as compatible with v11 LTS
- 0.3.8 Add extension-key to composer.json
- 0.3.7 Prevent 403 handler from getting caught in a loop
- 0.3.6 Prevent 404 handler from getting caught in a loop
- 0.3.5 Don't fetch error page twice
- 0.3.4 Set as compatible with v10 LTS
- 0.3.3
    - Add fallbacks for missing error content
    - Do not throw exceptions in case of configuration errors by default
- 0.3.2 Add eot, ttf and woff/woff2 to the list of web resources
- 0.3.0 Show error page for 404 status; send only a small 404 response for missing web resources
- 0.2.0 Show error page on missing permission for current login
- 0.1.0 Redirect to login page

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 62.9% 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 ~152 days

Recently: every ~264 days

Total

15

Last Release

564d ago

Major Versions

0.4.2 → 12.42024-03-07

12.4 → 13.42024-12-17

PHP version history (3 changes)0.2.0PHP ^7.2

0.4.2PHP ^7.2 || ^8.1

13.4PHP &gt;=8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/f4ea950f22b43e010ba4f0a6effb0928a6a1d11f64d36cec0d030b757bdfa85e?d=identicon)[wazum](/maintainers/wazum)

![](https://www.gravatar.com/avatar/fdc5d7c9be0f04c0d84c56db1e263fb7cb88c40564a7c293f1a2d4aa543f0115?d=identicon)[plan2net@packagist](/maintainers/plan2net@packagist)

---

Top Contributors

[![masi](https://avatars.githubusercontent.com/u/690355?v=4)](https://github.com/masi "masi (39 commits)")[![wazum](https://avatars.githubusercontent.com/u/146727?v=4)](https://github.com/wazum "wazum (10 commits)")[![GaryWilsonJr](https://avatars.githubusercontent.com/u/20659548?v=4)](https://github.com/GaryWilsonJr "GaryWilsonJr (9 commits)")[![georgringer](https://avatars.githubusercontent.com/u/1905663?v=4)](https://github.com/georgringer "georgringer (2 commits)")[![ikonplant](https://avatars.githubusercontent.com/u/23386283?v=4)](https://github.com/ikonplant "ikonplant (1 commits)")[![thegass](https://avatars.githubusercontent.com/u/101392?v=4)](https://github.com/thegass "thegass (1 commits)")

---

Tags

error-handlererror-handlersextensionsitetypo3error-handlerextensiontypo3error pagesite configurationhttp status 403http status 404http error forbiddenhttp error not found

### Embed Badge

![Health badge](/badges/plan2net-sierrha/health.svg)

```
[![Health](https://phpackages.com/badges/plan2net-sierrha/health.svg)](https://phpackages.com/packages/plan2net-sierrha)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[georgringer/news

News system - Versatile news system based on Extbase &amp; Fluid and using the latest technologies provided by TYPO3 CMS.

2985.3M123](/packages/georgringer-news)[friendsoftypo3/visual-editor

TYPO3 CMS Visual Editor - Brings a modern WYSIWYG editing experience to TYPO3 CMS.

576.1k2](/packages/friendsoftypo3-visual-editor)[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

611.1M8](/packages/netresearch-rte-ckeditor-image)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

40529.5k](/packages/wazum-sluggi)

PHPackages © 2026

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