wake-up-neo.net

.htaccess/.htpasswd 500 Interner Serverfehler

Ich arbeite daran, einen Ordner mit .htaccess zu blockieren, den ich noch nie zuvor verwendet habe, und ich habe Probleme. Hier ist was ich habe

.htaccess (im Ordner, den ich blockieren möchte):

AuthName "Username and password required"
AuthUserFile /.htpasswd 
Require valid-user
AuthType Basic

.htpasswd (befindet sich im Stammverzeichnis, das Passwort ist in der tatsächlichen Datei verschlüsselt):

   tim:blah

Ich bekomme 500 interne Serverfehler, und ich kann nicht herausfinden, warum. 

41
Tim Aych

Das wahrscheinlichste Problem ist diese Zeile:

AuthUserFile /.htpasswd 

Diese Zeile sollte den vollständigen Dateisystempfad zur Kennwortdatei enthalten, z.

AuthUserFile /var/www/.htpasswd 

Um Ihren Dateisystempfad zu ermitteln, können Sie ein PHP Dokument erstellen, das Folgendes enthält 

echo $_SERVER['DOCUMENT_ROOT'];

105
anubhava

Wenn nichts geholfen hat und Sie PHP verwenden, können Sie dies in Ihre index.php (oben) einfügen:

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
    if ($_SERVER['PHP_AUTH_USER'] != 'user' || 
        $_SERVER['PHP_AUTH_PW'] != 'pass') {

        header('WWW-Authenticate: Basic realm="Protected area"');
        header('HTTP/1.0 401 Unauthorized');

        die('Login failed!');
    }
}
6
Arne

Berechtigungen können dieses Problem ebenfalls verursachen.

Stellen Sie sicher, dass .htpasswd für den Webserver-Benutzer lesbar ist.

Wenn Sie beispielsweise nginx verwenden, überprüfen Sie nginx.conf, um herauszufinden, was der Serverbenutzer ist. Wenn Sie Apache verwenden, können Sie es herausfinden auf diese Weise usw.

Legen Sie dann die richtigen Besitzer fest und lesen Sie die Berechtigungen auf .htpasswd.

2
Oriol

Hatte das selbe Problem, es hatte mit Zugang zu tun! Haben Sie dem Benutzer www-data Das Eigentum an der Kennwortdatei übertragen?

chown www-data /var/www/.htpasswd
chmod 640 /var/www/.htpasswd

? Bewahren Sie das Kennwort aus offensichtlichen Gründen am besten außerhalb des Verzeichnisses /var/www/ Auf. Sagen wir in einem solchen Fall /home/MYSERVER/, Dass Sie auch das übergeordnete Verzeichnis dem übergeordneten Verzeichnis zuweisen müssen Benutzer www-data.

0
Lab Nap

Ich würde auch hinzufügen, dass die .htpasswd-Datei auf einigen Webhosts nicht funktioniert, wenn sie sich in einem öffentlich zugänglichen Bereich befindet. Eine kürzliche Installation habe ich bestätigt. Wie bereits erwähnt, ist es am besten, dies im Stammverzeichnis der Site zu platzieren.

0
karolus