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

View file

@ -98,6 +98,7 @@ Die E-Mail im Footer (`footer.tsx`) wird als Prop von `app/page.tsx` übergeben:
- Öffnet eine SSH-Master-Verbindung (Passwort nur einmal eingeben)
- rsync nach `jamulix.de:/var/www/jamulix.de/html/landingpage/`
- Setzt Symlink: `/var/www/jamulix.de/html/index.html` → `landingpage/index.html`
- Kopiert die Fehlerseiten `landingpage/<code>.html` in den Webroot
### Localhost (zum Testen)
@ -107,6 +108,7 @@ Die E-Mail im Footer (`footer.tsx`) wird als Prop von `app/page.tsx` übergeben:
- rsync nach `/var/www/html/landingpage/`
- Symlink: `/var/www/html/index.html` → `landingpage/index.html`
- Kopiert die Fehlerseiten in den Webroot
- `sudo chown -R www-data:www-data`
### Warum `/landingpage/` als Unterverzeichnis?
@ -115,6 +117,39 @@ Die E-Mail im Footer (`footer.tsx`) wird als Prop von `app/page.tsx` übergeben:
unter `jamulix.de/` zu betreiben ohne Konflikte. rsync mit `--delete` löscht
nur Dateien innerhalb von `landingpage/`, nicht andere Verzeichnisse im Webroot.
### Fehlerseiten
| Code | Quelle | Thema |
|------|--------|-------|
| 401 | `app/401/page.tsx` | Autorisierung erforderlich |
| 403 | `app/403/page.tsx` | Zugriff verweigert |
| 404 | `app/not-found.tsx` | Seite nicht gefunden |
| 500 | `app/500/page.tsx` | Interner Serverfehler |
| 502 | `app/502/page.tsx` | Bad Gateway |
| 503 | `app/503/page.tsx` | Wartungsarbeiten |
| 504 | `app/504/page.tsx` | Gateway Timeout |
Gemeinsames Layout: `components/error-page.tsx`. Der Build erzeugt
`landingpage/<code>.html`; die Deploy-Skripte kopieren sie zusätzlich nach
`<webroot>/<code>.html`. Alle Asset-Pfade sind absolut (`/landingpage/_next/…`),
daher funktionieren die Kopien im Webroot genauso.
Damit Apache sie ausliefert, braucht die vHost-Konfiguration (nicht Teil
dieses Repos) z. B.:
```apache
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
ErrorDocument 502 /502.html
ErrorDocument 503 /503.html
ErrorDocument 504 /504.html
```
- `ErrorDocument 401` muss ein lokaler Pfad sein, keine vollständige URL.
- Die 401-Seite erscheint erst, wenn der Login-Dialog des Browsers abgebrochen wird.
---
## Design