Messe-Landingpage /her-career/ zur herCAREER Expo 2026
Ziel des QR-Codes auf der Rückwandgrafik. Der gedruckte Code zeigt auf https://her-career.anelia-wolf.com – die Adresse ist damit unveränderlich. Die Seite liegt als /her-career/ im normalen Export, die Subdomain liefert dieselbe Datei aus demselben Docroot aus; DNS, Zertifikat, Vhosts für nginx und Apache und die Prüfbefehle stehen in docs/SUBDOMAIN-HERCAREER.md. Aufbau in beiden Sprachen: Hero (ink) → 01 Messe-Special → 02 Themen → 03 Auf der Messe → 04 Kontakt mit dem Formular. Die vier Themenblöcke der Rückwand liegen auf den drei Leistungsseiten, wie in der Navigation; jede Zeile verlinkt absolut auf die Hauptdomain. Der Wortlaut des Messe-Specials fehlt noch und steht sichtbar als „[…]“ auf der Seite. Der Build-Guard hält den Launch-Flip an, bis er da ist (CONTENT_TODO in src/lib/legal.ts, docs/OFFENE-DATEN.md Punkte 2.7–2.9). Deadline ist nicht der Livegang, sondern der 22.10.2026. - Canonical auf anelia-wolf.com/her-career/, damit die Subdomain-Kopie nicht ein zweites Mal im Index steht - flags.showHerCareer trägt Termine-Ledger, Sitemap-Eintrag und die Meta-Beschreibung mit Stand und Uhrzeit. Ab dem 24.10.2026 auf false - ServiceHero: facts und cta sind optional – ohne beides und ohne Foto entfällt die rechte Spalte - ProcessContact: optionaler Zähler, die Messeseite nummeriert ihre Abschnitte - Kopf-CTA auf dieser Seite ausgeblendet. Das macht eine Regel in globals.css, weil der Kopf außerhalb von <main> liegt und auf der Subdomain der Pfad ohnehin „/“ ist Enthält außerdem die bis dahin nicht committeten Änderungen an Header, LangSwitch, OverlayMenu, Wordmark und globals.css. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
128
docs/SUBDOMAIN-HERCAREER.md
Normal file
128
docs/SUBDOMAIN-HERCAREER.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# Subdomain `her-career.anelia-wolf.com`
|
||||
|
||||
Stand: 07.09.2026 · Zuständig: webklar (Hoster-Konfiguration)
|
||||
|
||||
Auf der Rückwandgrafik am Messestand steht unten links ein QR-Code, beschriftet
|
||||
„Messe-Special · Code scannen“. Er zeigt auf:
|
||||
|
||||
```
|
||||
https://her-career.anelia-wolf.com
|
||||
```
|
||||
|
||||
**Diese Adresse ist gedruckt.** Sie lässt sich nicht mehr ändern, und sie muss am
|
||||
22.10.2026 funktionieren – inklusive gültigem Zertifikat. Ein Scan, der auf einer
|
||||
Zertifikatswarnung landet, ist schlimmer als kein Code.
|
||||
|
||||
Die Datei dahinter ist `out/her-career/index.html` aus dem normalen Build
|
||||
(`npm run build`). Es gibt **keinen zweiten Build und kein zweites Deployment** –
|
||||
die Subdomain zeigt in denselben Docroot wie die Hauptdomain.
|
||||
|
||||
## Was einzurichten ist
|
||||
|
||||
1. **DNS:** `her-career` als A- (und AAAA-)Record auf dieselbe IP wie
|
||||
`anelia-wolf.com`, oder als CNAME auf den Hauptdomain-Namen.
|
||||
2. **Zertifikat:** Die Subdomain muss im Zertifikat stehen – als weiterer
|
||||
SAN-Eintrag (`certbot ... -d anelia-wolf.com -d www.anelia-wolf.com -d
|
||||
her-career.anelia-wolf.com`) oder über ein Wildcard-Zertifikat.
|
||||
3. **Vhost:** Derselbe Docroot, drei Regeln (unten). Kurz gesagt: `/` liefert die
|
||||
Messeseite, ihre Dateien kommen aus demselben Verzeichnis, jede andere Adresse
|
||||
wandert per 301 auf die Hauptdomain.
|
||||
|
||||
Der dritte Punkt ist der wichtige. Ohne ihn läge die **komplette Website** unter
|
||||
zwei Hostnamen – jede Seite doppelt, mit doppelten Adressen in der Suche. Die
|
||||
Messeseite trägt zwar einen Canonical auf `https://anelia-wolf.com/her-career/`
|
||||
(gesetzt in `src/app/(de)/her-career/page.tsx`), der die Kopie zusammenfasst; die
|
||||
übrigen Seiten tun das für ihre Subdomain-Zwillinge nicht.
|
||||
|
||||
## nginx
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 443 ssl;
|
||||
http2 on;
|
||||
server_name her-career.anelia-wolf.com;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/anelia-wolf.com/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/anelia-wolf.com/privkey.pem;
|
||||
|
||||
# Derselbe Docroot wie die Hauptdomain: der hochgeladene Inhalt von out/.
|
||||
root /var/www/anelia-wolf.com;
|
||||
|
||||
# „/“ ist die Messeseite.
|
||||
location = / {
|
||||
try_files /her-career/index.html =404;
|
||||
}
|
||||
|
||||
# Was die Seite selbst lädt, kommt aus demselben Verzeichnis.
|
||||
# (Leere Blöcke erben root und liefern die Datei aus – kein Redirect.)
|
||||
location /_next/ { }
|
||||
location /brand/ { }
|
||||
location /photos/ { }
|
||||
location = /favicon.ico { }
|
||||
location = /icon.svg { }
|
||||
location = /apple-icon.png { }
|
||||
|
||||
# Alles andere gehört auf die Hauptdomain.
|
||||
location / {
|
||||
return 301 https://anelia-wolf.com$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
# Port 80 nur zum Hochreichen auf HTTPS.
|
||||
server {
|
||||
listen 80;
|
||||
server_name her-career.anelia-wolf.com;
|
||||
return 301 https://her-career.anelia-wolf.com$request_uri;
|
||||
}
|
||||
```
|
||||
|
||||
## Apache
|
||||
|
||||
```apache
|
||||
<VirtualHost *:443>
|
||||
ServerName her-career.anelia-wolf.com
|
||||
DocumentRoot /var/www/anelia-wolf.com
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/letsencrypt/live/anelia-wolf.com/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/anelia-wolf.com/privkey.pem
|
||||
|
||||
RewriteEngine On
|
||||
# „/“ ist die Messeseite (intern, ohne Redirect – die Adresse bleibt stehen).
|
||||
RewriteRule ^/?$ /her-career/index.html [L]
|
||||
# Dateien der Seite bleiben hier.
|
||||
RewriteRule ^/(_next|brand|photos)/ - [L]
|
||||
RewriteRule ^/(favicon\.ico|icon\.svg|apple-icon\.png)$ - [L]
|
||||
# Alles andere auf die Hauptdomain.
|
||||
RewriteRule ^/(.*)$ https://anelia-wolf.com/$1 [R=301,L]
|
||||
</VirtualHost>
|
||||
```
|
||||
|
||||
## Wenn der Hoster keine Rewrites kann
|
||||
|
||||
Dann die ganze Subdomain per 301 auf `https://anelia-wolf.com/her-career/`
|
||||
umleiten. Der QR-Code funktioniert weiterhin – der Browser folgt der Umleitung,
|
||||
ohne dass jemand etwas merkt; in der Adresszeile steht danach die Hauptdomain.
|
||||
Das ist die schlechtere, aber jederzeit funktionierende Variante.
|
||||
|
||||
## Prüfen (nach dem Ausrollen, vor der Messe)
|
||||
|
||||
```bash
|
||||
curl -sI https://her-career.anelia-wolf.com/ | head -1
|
||||
curl -s https://her-career.anelia-wolf.com/ | grep -o '<link rel="canonical"[^>]*>'
|
||||
curl -sI https://her-career.anelia-wolf.com/impressum/ | head -2
|
||||
```
|
||||
|
||||
Erwartet: `200`, ein Canonical auf `https://anelia-wolf.com/her-career/`, und für
|
||||
`/impressum/` ein `301` auf `https://anelia-wolf.com/impressum/`.
|
||||
|
||||
Dazu einmal mit dem Handy den echten, gedruckten Code scannen – nicht den aus der
|
||||
PDF-Vorschau, sondern den auf dem gelieferten Druck.
|
||||
|
||||
## Nach der Messe
|
||||
|
||||
Ab dem 24.10.2026 steht in `src/lib/site.ts` `flags.showHerCareer` auf `false`
|
||||
(siehe `docs/HANDOVER.md`, Abschnitt 6). Die Seite bleibt erreichbar – gedruckte
|
||||
Codes laufen weiter, und Anelias Rückwand wird nicht am Tag danach eingestampft –,
|
||||
verliert aber die Termin-Angaben und den Eintrag in der Sitemap. Der Vhost bleibt,
|
||||
wie er ist.
|
||||
Reference in New Issue
Block a user