Feature: Fehlerseiten 401, 403, 500, 502, 503, 504

Gemeinsames Layout in components/error-page.tsx, 404 darauf umgestellt.
Jede Route app/<code>/page.tsx erzeugt landingpage/<code>.html; die
Deploy-Skripte kopieren alle Fehlerseiten in den Webroot. README
dokumentiert die nötigen ErrorDocument-Zeilen (Server-Konfig unverändert).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-10-07 09:55:02 +02:00
commit 9c7e1ce4db

37
app/401/page.tsx Normal file
View file

@ -0,0 +1,37 @@
import { ErrorPage, Cmd, Out, Err } from '@/components/error-page'
export const metadata = {
title: '401 – Autorisierung erforderlich | Jamulix',
description: 'Parole? Dieser Bereich ist passwortgeschützt.',
robots: { index: false, follow: false },
}
export default function Unauthorized() {
return (
<ErrorPage
code={401}
label="Autorisierung erforderlich"
title="Parole?"
terminal={
<>
<Cmd>ssh gast@jamulix.de</Cmd>
<Err>gast@jamulix.de: Permission denied (publickey,password).</Err>
<Cmd>sudo !!</Cmd>
<Out>[sudo] Passwort für gast: ********</Out>
<Out>Sorry, try again.</Out>
<Out>[sudo] Passwort für gast: geheim</Out>
<Out>Sorry, try again.</Out>
<Out>[sudo] Passwort für gast: 123456</Out>
<Err>sudo: 3 incorrect password attempts</Err>
<Cmd>echo &quot;Sesam, öffne dich&quot;</Cmd>
<Out>Sesam, öffne dich</Out>
</>
}
tip={<>Tipp: <span className="text-accent">123456</span> ist es auch diesmal nicht.</>}
>
Dieser Bereich ist passwortgeschützt. Wer Zugangsdaten hat, lädt die
Seite einfach neu und meldet sich an – alle anderen bekommen immerhin
diese hübsche Fehlerseite.
</ErrorPage>
)
}