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.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# =============================================================
|
||||
# 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>
|
||||
Reference in New Issue
Block a user