Files
urlshort-qr-gen/public/.htaccess
T
florian.wilde b14bb75af0 chore: Einrichtungs-Token nirgendwo abrufbar oder versioniert
Das Token wird zwar immer nach data/ geschrieben und ist dort durch
eine eigene .htaccess geschuetzt. Landet es aber aus irgendeinem Grund
im Projektstamm, griff bisher keine Regel: die .htaccess dort sperrt
Verzeichnisse und bestimmte Dateinamen, .txt gehoerte nicht dazu. Bei
der Variante ohne eigenen Webroot waere es damit unter
https://domain/setup-token.txt abrufbar gewesen - und das Token ist der
Schluessel zur Ersteinrichtung.

Beide .htaccess-Dateien verweigern den Namen jetzt ausdruecklich, mit
und ohne mod_rewrite. Zusaetzlich ist build-release.sh gesperrt.

.gitignore schliesst setup-token.txt in jedem Verzeichnis aus, nicht
nur unter data/.
2026-08-12 18:33:35 +02:00

60 lines
1.9 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 – Apache-Konfiguration fuer den Webroot
# =============================================================
<IfModule mod_rewrite.c>
RewriteEngine On
# Falls die Anwendung in einem Unterverzeichnis liegt, ermittelt
# Apache die Basis in der Regel selbst. Bei Problemen hier setzen:
# RewriteBase /
# Vorhandene Dateien und Verzeichnisse direkt ausliefern
# (assets/, favicon.ico, ...).
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Alles Uebrige an den Front Controller.
RewriteRule ^ index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
# Ohne mod_rewrite funktionieren nur Aufrufe mit index.php/... –
# bitte mod_rewrite beim Hoster aktivieren.
ErrorDocument 404 /index.php
</IfModule>
# Authorization-Header durchreichen (manche CGI/FastCGI-Setups)
<IfModule mod_setenvif.c>
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
</IfModule>
# Verzeichnislisting abschalten
Options -Indexes
# Standard-Zeichensatz
AddDefaultCharset UTF-8
# Sicherheits-Header fuer statische Dateien.
# "setifempty" statt "set", weil die Anwendung dieselben Header fuer
# PHP-Antworten selbst setzt - sonst wuerden sie doppelt ausgeliefert.
<IfModule mod_headers.c>
Header setifempty X-Content-Type-Options "nosniff"
Header setifempty X-Frame-Options "DENY"
Header setifempty Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# Statische Assets duerfen gecacht werden
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType image/svg+xml "access plus 7 days"
</IfModule>
# Kein Zugriff auf Konfigurations- und Versionsdateien
<FilesMatch "^(\.env.*|composer\.(json|lock)|.*\.md|.*\.ya?ml|Dockerfile|setup-token\.txt)$">
Require all denied
</FilesMatch>