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.
41 lines
1.5 KiB
ApacheConf
41 lines
1.5 KiB
ApacheConf
# =============================================================
|
||
# 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>
|