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>
129 lines
4.7 KiB
Markdown
129 lines
4.7 KiB
Markdown
# 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.
|