# Werkbaum — Apache-Konfiguration der produktiven Instanz (D43-Nachtrag 2).
# Wird von scripts/deploy-prod.sh als `.htaccess` in die Site-Wurzel gespiegelt.
# GitHub Pages ignoriert `.htaccess` (kein Apache) und braucht es auch nicht —
# dort ist die Zuordnung schon richtig; die Datei liegt deshalb NICHT in
# frontend/public/, sonst landete sie im Pages-Artefakt.
#
# Warum es sie gibt: Apache kennt die Endung `.md` nicht und sendet dann GAR
# KEINEN Content-Type. Der Browser rät daraufhin windows-1252 und macht aus
# jedem `—` ein `â€"` — gemessen am 24.08.2026 auf werkbaum.javagil.de, 31
# betroffene Zeilen in llms.md. Dieselbe Datei kommt von GitHub Pages als
# `text/markdown; charset=utf-8` korrekt an.
#
# `.werkbaum` bekommt `text/plain` aus dem in SPEC §12/D24 genannten Grund:
# dann zeigt der Browser die Datei an, statt sie herunterzuladen.
#
# Sollte der Server nach einem Deploy 500 antworten, verbietet seine
# `AllowOverride`-Einstellung `AddType` (Klasse FileInfo) — dann gehören die
# drei Zeilen in die vhost-Konfiguration und diese Datei entfällt.
<IfModule mod_mime.c>
  AddType text/markdown;charset=utf-8 .md
  AddType text/plain;charset=utf-8 .txt
  AddType text/plain;charset=utf-8 .werkbaum
  # PWA-Manifest (D73): ohne Zuordnung liefert Apache die unbekannte Endung
  # ohne Content-Type aus, und Chromium verwirft das Manifest dann still.
  AddType application/manifest+json .webmanifest
</IfModule>

# --- Backend: /api/ an den eigenen Dienst weiterreichen (D77) ---------------
# Der Editor spricht das Backend unter derselben Herkunft an (`?live=…`,
# D76). Der Weg dorthin ist mod_rewrite mit dem P-Flag: `ProxyPass` ist in
# einer `.htaccess` nicht zulässig, und `~/doms/<domain>/etc/` ist auf diesem
# Hoster leer.
#
# Dass das P-Flag hier ERLAUBT ist, war die offene Frage — manche Hoster
# sperren es. Gemessen am 26.08.2026 auf mih00.hostsharing.net: sofortige
# Antwort HTTP 200 nach 0,13 s, absichtlich um 30 s verzögerte Antwort
# HTTP 200 nach 30,1 s. Apache hält die Verbindung also durch und puffert
# nichts weg — Long Polling mit `wait=25` trägt dort nachweislich (D76,
# Nachtrag 2).
#
# Die Portnummer setzt scripts/deploy-prod.sh aus BACKEND_PORT ein; hier steht
# ein Platzhalter, damit Port und Dienst nur an EINER Stelle vereinbart sind.
# Läuft kein Backend, antwortet /api/ mit 503 — das ist die Wahrheit, und der
# Rest der Seite bleibt unberührt.
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteRule ^api/(.*)$ http://127.0.0.1:__BACKEND_PORT__/api/$1 [P,L]
</IfModule>
