From 3742ad19c27ade9a1aafd33db8dd4d47b61e3878 Mon Sep 17 00:00:00 2001 From: fs Date: Sun, 26 Apr 2026 09:50:40 +0200 Subject: [PATCH] chore: enforce nginx-only setup and remove .htaccess --- .htaccess | 5 ----- README.md | 6 ++++++ bin/qa-required.sh | 3 +++ docs/explanation-docker-betrieb.md | 1 + docs/howto-docker-lokal.md | 1 + docs/howto-docker-produktiv.md | 1 + web/.htaccess | 9 --------- 7 files changed, 12 insertions(+), 14 deletions(-) delete mode 100644 .htaccess delete mode 100644 web/.htaccess diff --git a/.htaccess b/.htaccess deleted file mode 100644 index 0c6ad6a..0000000 --- a/.htaccess +++ /dev/null @@ -1,5 +0,0 @@ - - RewriteEngine on - RewriteRule ^$ web/ [L] - RewriteRule (.*) web/$1 [L] - diff --git a/README.md b/README.md index d2e67b1..df410d9 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,12 @@ Der Fokus liegt auf klarer Rollen-/Rechtestruktur, Tenant-Scope und einer konsis - Dompdf (PDF Rendering) - endroid/qr-code (QR-Code Rendering) +## Webserver-Policy + +- Docker-Betrieb ist Nginx-only (Dev + Prod). +- Apache-/`.htaccess`-Regeln werden nicht ausgewertet und sind kein Teil des Laufzeit-Contracts. +- Routing und Front-Controller-Verhalten werden ausschliesslich in `/docker/nginx/default.conf` und `/docker/nginx/prod.conf` gepflegt. + ## Schnellstart (Docker) 1. Umgebungsdatei anlegen diff --git a/bin/qa-required.sh b/bin/qa-required.sh index f983dba..b411aeb 100755 --- a/bin/qa-required.sh +++ b/bin/qa-required.sh @@ -41,6 +41,9 @@ run_step "QG-008 Docs link integrity" \ run_step "QG-008 Docs drift contract" \ bin/docs-drift-check.sh +run_step "Nginx-only .htaccess guard" \ + bash -lc 'matches="$(rg --files -g ".htaccess" || true)"; if [[ -n "${matches}" ]]; then echo "[FAIL] .htaccess files are not allowed in Nginx-only setup"; echo "${matches}"; exit 1; fi' + run_step "CSS contract check" \ bin/css-contract-check.sh diff --git a/docs/explanation-docker-betrieb.md b/docs/explanation-docker-betrieb.md index 8264284..dff20e5 100644 --- a/docs/explanation-docker-betrieb.md +++ b/docs/explanation-docker-betrieb.md @@ -16,4 +16,5 @@ Die Docker-Dokumentation ist in zwei klare Pfade getrennt: - Für tägliche Entwicklung immer mit `docker-compose.yml` arbeiten. - Für Serverbetrieb ausschließlich `docker-compose.prod.yml` verwenden. - Änderungen an Domain/TLS nur in der Produktivdoku und den Produktivdateien pflegen. +- Webserver-Contract ist Nginx-only; `.htaccess` wird im Docker-Betrieb nicht berücksichtigt. - Nach Start oder Deployment einmal `docker compose exec php php bin/console doctor` ausführen. diff --git a/docs/howto-docker-lokal.md b/docs/howto-docker-lokal.md index 54d5882..640ecce 100644 --- a/docs/howto-docker-lokal.md +++ b/docs/howto-docker-lokal.md @@ -10,6 +10,7 @@ Diese Anleitung bringt die Anwendung lokal schnell und stabil zum Laufen. - Docker Desktop (oder Docker Engine + Compose) - Port `8080` (App) und `8081` (phpMyAdmin) sind frei +- Nginx-only Setup: `.htaccess` wird nicht ausgewertet ## Start in 5 Schritten diff --git a/docs/howto-docker-produktiv.md b/docs/howto-docker-produktiv.md index fea5c76..3b5db60 100644 --- a/docs/howto-docker-produktiv.md +++ b/docs/howto-docker-produktiv.md @@ -11,6 +11,7 @@ Diese Anleitung beschreibt den Betrieb mit Domain auf Basis von `/docker-compose - DNS zeigt auf den Server (`A/AAAA`) - Ports `80` und `443` sind offen - TLS-Zertifikate vorhanden +- Nginx-only Setup: `.htaccess` wird nicht ausgewertet ## Produktionsdateien diff --git a/web/.htaccess b/web/.htaccess deleted file mode 100644 index 6f3a18a..0000000 --- a/web/.htaccess +++ /dev/null @@ -1,9 +0,0 @@ -php_flag display_startup_errors on -php_flag display_errors on - - - RewriteEngine On - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^(.*)$ index.php [QSA,L] -