Files
urlshort-qr-gen/.htaccess
T
florian.wilde f4aece9557 build: Docker-Setup und Apache-Konfiguration
Apache mit mod_php statt PHP-FPM plus Nginx: dadurch verhalten sich
Docker und klassisches Shared Hosting gleich, es gilt dieselbe
.htaccess. MariaDB liegt hinter einem Compose-Profil.

Die Entwicklungspakete bleiben im Image installiert - beim Aufraeumen
mit apt-get purge --auto-remove verschwindet sonst auch die von imagick
benoetigte Laufzeitbibliothek.

Die .htaccess im Stammverzeichnis wird nur gebraucht, wenn der Webroot
nicht auf public/ gelegt werden kann; sie sperrt dann alle uebrigen
Verzeichnisse.
2026-08-03 18:11:40 +02:00

41 lines
1.5 KiB
ApacheConf
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================
# urlshort-qr-gen – .htaccess fuer das Projekt-Stammverzeichnis
#
# Diese Datei wird NUR gebraucht, wenn beim Hoster der Webroot
# nicht auf /public gelegt werden kann (Shared-Hosting-Variante B
# in der README). Dann liegt das komplette Projekt im Webroot und
# diese Regeln leiten intern nach public/ weiter – gleichzeitig
# werden alle uebrigen Ordner gesperrt.
#
# Liegt der Webroot korrekt auf /public, ist diese Datei
# wirkungslos (sie liegt dann ausserhalb des Webroots).
# =============================================================
Options -Indexes
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
RewriteEngine On
# 1) Nicht-oeffentliche Verzeichnisse hart sperren.
RewriteRule ^(src|templates|migrations|tests|docker|data|vendor|\.git)(/|$) - [F,L]
# 2) Konfigurations- und Projektdateien sperren.
RewriteRule ^(\.env|composer\.(json|lock)|phpunit\.xml|Dockerfile|docker-compose\.ya?ml|.*\.md)$ - [F,L]
# 3) Bereits nach public/ aufgeloeste Anfragen nicht erneut umschreiben.
RewriteCond %{REQUEST_URI} !^/?public/
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
# Zusaetzlicher Schutz, falls mod_rewrite fehlt.
<FilesMatch "^(\.env.*|composer\.(json|lock)|phpunit\.xml|.*\.md|Dockerfile)$">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
</FilesMatch>