# 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.