# 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 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] ``` ## 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 ']*>' 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.