2017-07-17 2 views
0

ich folgendes in meiner .htaccess Datei haben sich ändern:.htaccess Datei Referenzen gehen zu/etc/apache2 und versucht, relativ

AuthType Basic 
AuthName "Secured" 
AuthUserFile ../private/passwd 
Require valid-user 
Order allow,deny 
Allow from env=unauthenticated 
Satisfy any 

Das Problem der error.log ist, dass Apache „open Passwort Datei konnte nicht sagen hat :/etc/apache2/passwd "- das ist offensichtlich meine Apache-Wurzel.

Wie würde ich stattdessen einen relativen Verweis auf die Datei .htaccess für einen Pfad angeben?

Und wahrscheinlich sehr wichtig, kann dies in der Datei .htaccess nur getan werden?

Wenn ja, würde die Beantwortung der zweiten Frage die Lösung viel tragbarer machen.

Antwort

1

Doc: AuthUserFile

Die AuthUserFile Direktive legt den Namen einer Textdatei die Liste der Benutzer und Passwörter für die Benutzerauthentifizierung enthält. Dateipfad ist der Pfad zur Benutzerdatei. Wenn es nicht absolut ist, wird es relativ zum ServerRoot behandelt.

Also gehe ich davon aus, dass der Server root in /etc/apache2/ so Ihre relative URL ist: ./passwd zur Wurzel relativ sein, und nicht wo Ihre .htaccess-Datei ist. Daher ist es nicht möglich, sie portabel und relativ zu dem Ort zu machen, an dem Sie den htaccess platzieren.

Zusätzlich auch die Dokumentation sagt:

Sicherheit

Vergewissern Sie sich, dass die AuthUserFile außerhalb des Dokumentenbaum des Web-Server gespeichert wird. Legen Sie es nicht in das Verzeichnis, das es schützt. Andernfalls können Clients möglicherweise die AuthUserFile herunterladen.

Es ist also eine schlechte Idee, Ihre Passwortdatei am selben Ort zu behalten, an dem Sie Ihren Inhalt bereitstellen.

+0

Ich habe den Pfad zu '../ private' für diese Diskussion geändert, auch wenn absolute Pfade als eine harte Anforderung erscheinen. –