Ordner sperren ohne .htaccess, sondern direkt in der Apache2 Konfiguration

Katsumi

Lt. Commander
Registriert
Sep. 2002
Beiträge
1.336
Hi.

Ich möchte den Ordner "secret" vor fremden Zugriff von Außen schützen:

/usr/home/username/public_html/documents/<id>/secret/

heißt:

/usr/home/username/public_html/documents/1/secret/
/usr/home/username/public_html/documents/2/secret/
/usr/home/username/public_html/documents/3/secret/

Der Ordner documents enthält einen Ordner welcher eine Zahl ist und darin ist unter anderem ein Ordner "secret", welcher von fremden Zugriffen per Browser nicht aufrufbar sein soll. Aktuell packe ich in jeden "secret" Ordner eine .htaccess mit folgendem Inhalt:

AuthType Basic
AuthName "PROTECTED"
AuthUserFile /usr/home/username/.htpasswd
require user Benutzername

Wie müsste die Regel lauten, wenn ich es in die Apache2 Konfiguration direkt eintragen wollen würde und nicht mehr als .htaccess in jeden Ordner? Hat da jemand Ahnung von?
 
Zuletzt bearbeitet:
Hallo,

im Prinzip genauso, nur das du es entweder in eine Location oder Directory-Umgebung machst (EDIT: innerhalb der Virtualhost-Config):

Code:
       <Location /documents/1/secret/>
               AuthType Basic
               AuthName "PROTECTED"
               AuthUserFile /usr/home/username/.htpasswd
               require user Benutzername
        </Location>

oder

Code:
       <Directory /usr/home/username/public_html/documents/1/secret/>
                AuthType Basic
                AuthName "PROTECTED"
                AuthUserFile /usr/home/username/.htpasswd
                require user Benutzername
        </Directory>

Für diesen Fall sollte der einzige Unterschied sein, dass Location den Pfad der URL betrifft und das Directory den gesamten Ordnerpfad auf dem Server
 
Danke. Das Problem hier ist aber das die <id> wächst bzw gar wieder welche entfallen. Ich würde daher hier für die ID(Ganzzahlig) etwas variables benötigen. Ansonsten müsste ich ja ständig die Konfiguration per Hand editieren. :)

<Directory /usr/home/username/public_html/documents/<id>/secret/>
 
Ist das Password denn für alle gleich?

Wenn ja würde ich mal
Code:
<DirectoryMatch "^/usr/home/username/public_html/documents/[0-9]+/secret/">
   ...
</DirectoryMatch>
versuchen.
 
Danke schön für die schnelle Hilfe. Funktioniert super. Auch mit LocationMatch würde es gehen, für URLs, falls Leute Routes verwenden. :)
 
Zurück
Oben