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

ActiveTypo3-cms-extension

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)517.5k↓35.4%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 1mo 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 92% of packages

Maintenance28

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity81

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

517d 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

[georgringer/news

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

2815.1M90](/packages/georgringer-news)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[networkteam/sentry-client

A Sentry client for TYPO3. It forwards errors and exceptions to Sentry - https://sentry.io/

371.0M4](/packages/networkteam-sentry-client)[leuchtfeuer/locate

Locate - The users country, preferred language and other facts will be detected. Depending on configurable rules the user can be redirected to other languages or pages. Locate also provides geo blocking for configurable pages in configurable countries.

1182.8k](/packages/leuchtfeuer-locate)[netresearch/contexts

Multi-channel content visibility for TYPO3 - by Netresearch

1117.4k1](/packages/netresearch-contexts)[pagemachine/typo3-formlog

Form log for TYPO3

23225.3k6](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

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