Xampp-.htaccess
tomgk
- webserver
0 Vinzenz Mai0 Dieter Raber0 tomgk0 Der Martin
0 Der Martin0 Hosts-Fragen
tomgk
Ich habe mit .htaccess versucht ein Verzeichnis zu schützen, aber wenn ich Benutzername und Passwort eingebe kommt eine 500-Seite obwohl der Benutzername und das Passwort stimmt!
Hallo,
Ich habe mit .htaccess versucht ein Verzeichnis zu schützen, aber wenn ich Benutzername und Passwort eingebe kommt eine 500-Seite obwohl der Benutzername und das Passwort stimmt!
dann hast Du etwas falsch gemacht.
Freundliche Grüße
Vinzenz
Hallo tomgk
Poste doch mal deine .htaccess und erzaehl, was fuer ein Betriebsystem du benutzt
Gruss
Dieter
Die Datei .htaccess:
AuthUserFile /Web/PW/.htpasswd
AuthType Basic
AuthName "Interner Bereich"
require valid-user
ErrorDocument 400 /tWeb/error.php
ErrorDocument 401 /tWeb/error.php
ErrorDocument 403 /tWeb/e404.html
ErrorDocument 404 /tWeb/error.php
ErrorDocument 500 /tWeb/error.php
"Web" ist der Ordner in dem .htaccess ist,
in "PW" ist .htpasswd
Ich benutz das Betriebsystem Windows Vista, Browser FF 3.
Hallo,
AuthUserFile /Web/PW/.htpasswd
"Web" ist der Ordner in dem .htaccess ist,
in "PW" ist .htpasswd
und das dürfte *ein* Problem sein. Der Parameter von AuthUserFile ist kein URL-Pfad, sondern verweist (wenn er mit einem Slash beginnt) auf das Dateisystem des Servers.
Ich benutz das Betriebsystem Windows Vista, Browser FF 3.
Woher der 500er kommt, ist damit aber noch nicht klar. Aber bist du sicher, dass es wirklich ein 500er ist? Oder sieht es nur so aus? Hast du wirklich den HTTP-Status Immerhin ...
ErrorDocument 401 /tWeb/error.php
ErrorDocument 500 /tWeb/error.php
... lässt du für den HTTP-Status 401 dasselbe Dokument ausliefern wie für den Status 500.
Normalerweise würde der Apache jeden Request erneut mit "401, Authorization Required" beantworten, wenn er die User/Passwort-Datei nicht findet. Wie das im Zusammenspiel mit einem 401er-ErrorDocument aussieht, habe ich noch nie ausprobiert.
Die Access- und Error-Logs des Servers geben hier vielleicht noch mehr Auskunft.
So long,
Martin
Woher der 500er kommt, ist damit aber noch nicht klar. Aber bist du sicher, dass es wirklich ein 500er ist? Oder sieht es nur so aus? Hast du wirklich den HTTP-Status Immerhin ...
ErrorDocument 401 /tWeb/error.php
ErrorDocument 500 /tWeb/error.php... lässt du für den HTTP-Status 401 dasselbe Dokument ausliefern wie für den Status 500.
error.php liest den Error-Code durch php aus und schreibt dem entsprechent die Seite. Um sicher zu sein habe ich die 500-Zeile gelöscht, nochmal versucht mit dem Ergebnis:Die 500-Seite des Servers
MfG
tomgk
Hello,
error.php liest den Error-Code durch php aus und schreibt dem entsprechent die Seite. Um sicher zu sein habe ich die 500-Zeile gelöscht, nochmal versucht mit dem Ergebnis:Die 500-Seite des Servers
Und dein error.log sagt was? Bitte frag jetzt nicht, wo du die Datei findest, such bei Google, such im Dateisystem...
Kann es sein, dass dein Problem GAR nichts mit der .htaccess zu tun hat, sondern mit dem, was du aufrufst?
MfG
Rouven
Beim suchen von error.log in Dateisystem wurden nur PHP-Fehlerseiten gefunden.
Kann es sein, dass dein Problem GAR nichts mit der .htaccess zu tun hat, sondern mit dem, was du aufrufst?
Wenn ich alle Zeilen außer den Eroor Document-Zeilen lösche kommt die gewünschte Seite.
MfG
tomgk
Beim suchen von error.log in Dateisystem wurden nur PHP-Fehlerseiten gefunden.
[...]
Wenn ich alle Zeilen außer den Eroor Document-Zeilen lösche kommt die gewünschte Seite.
<glaskugel>Bleibt eigentlich nur noch die Möglichkeit, dass die entspr. auth-Module nicht geladen sind, sofern du keinen Schreibfehler in den Direktiven hast oder irgendwo Leerzeichen stehen, wo keine stehen dürfen.</glaskugel>
»»Bleibt eigentlich nur noch die Möglichkeit, dass die entspr. auth-Module nicht geladen sind, sofern du keinen Schreibfehler in den Direktiven hast oder irgendwo Leerzeichen stehen, wo keine stehen dürfen.
Auth-Module?
Müssen die Passwörter in .htpasswd verschlüsselt sein?
Müssen die Passwörter in .htpasswd verschlüsselt sein?
Das kommt drauf an... Eigentlich ja, aber unter Windows wurde bereits berichtet, dass das dort nur unverschlüsselt funktioniere (kann ich jedoch mit der Original-Distribution von httpd.apache.org nicht bestätigen).
Allerdings wird beim Nichtübereinstimmen von Benutzername und Passwort oder Nichtvorhandensein eines bestimmten Benutzers der Statuscode 401 zurückgegeben:
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"user %s not found: %s", r->user, r->uri);
ap_note_basic_auth_failure(r);
return HTTP_UNAUTHORIZED;
invalid_pw = apr_password_validate(sent_pw, real_pw);
if (invalid_pw != APR_SUCCESS) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"user %s: authentication failure for "%s": "
"Password Mismatch",
r->user, r->uri);
ap_note_basic_auth_failure(r);
return HTTP_UNAUTHORIZED;
Insofern wäre es schon hilfreich, den Inhalt der error.log, die auch error_log heißen kann, zu kennen. Den Speicherort findest du, indem du in der httpd.conf (die wiederum auch anders heißen kann...) nach der Direktive ErrorLog suchst.
Müssen die Passwörter in .htpasswd verschlüsselt sein?
Das kommt drauf an... Eigentlich ja, aber unter Windows wurde bereits berichtet, dass das dort nur unverschlüsselt funktioniere (kann ich jedoch mit der Original-Distribution von httpd.apache.org nicht bestätigen).
Unverschlüsselt, sonst muss man verschlüsseltes Passwort eingeben und das brings nicht.
Unverschlüsselt, sonst muss man verschlüsseltes Passwort eingeben und das brings nicht.
Ist das bei XAMPP so? Interessant zu wissen. Normal läuft das so:
.htpasswd -> verschlüsselt gespeichert
Der Benutzer gibt das PW im Browser im Klartext ein, der Webserver verschlüsselt es, um es auf Übereinstimmung zu prüfen.
Hatte ich auch gedacht und habe verschlüsselte gepeichert aber es funktionierte nicht. Als ich es unverschlüsselt speicherte funktionierte es.
Moin!
Das kommt drauf an... Eigentlich ja, aber unter Windows wurde bereits berichtet, dass das dort nur unverschlüsselt funktioniere (kann ich jedoch mit der Original-Distribution von httpd.apache.org nicht bestätigen).
Diese Aussage ist falsch. Der Apache unter Windows unterstützt nur keine crypt-verschlüsselten Passworte - aber das ist im Prinzip auch kein Problem, da crypt sowieso ein uraltes, unzeitgemäßes Verfahren ist, dass nur 8 Zeichen Passwortlänge erlaubt und somit in erlebbar langer Zeit knackbar wäre.
Jede Apache-Distribution sollte ein Kommandozeilen-Utility mitbringen, dass "htpasswd" bzw. "htpasswd.exe" heißt und dafür da ist, die Verschlüsselung in .htpasswd-Dateien zu erledigen. Mit den entsprechenden Parametern kann man auch unter Windows MD5-verschlüsselte Passworte haben.
- Sven Rautenberg
Mit den entsprechenden Parametern kann man auch unter Windows MD5-verschlüsselte Passworte haben.
Ich dachte immer, MD5 ist keine Verschlüsselung sondern nur die Erzeugung eine Hash-Wertes. Liege ich da falsch?
Moin!
Mit den entsprechenden Parametern kann man auch unter Windows MD5-verschlüsselte Passworte haben.
Ich dachte immer, MD5 ist keine Verschlüsselung sondern nur die Erzeugung eine Hash-Wertes. Liege ich da falsch?
Nein.
- Sven Rautenberg
Ah, ich lese gerade, ein 401 wird trotzdem erst einmal zurückgegeben. Dann kann es schon mal kein grober Konfigurationsfehler in der .htaccess-Datei sein und Module müssen auch alle geladen sein.
baisc_auth im 2.0er branch in der Original-Distribution – wer weiß, was xampp da modifiziert – (ich habe jetzt keine Lust mich im 2.2er branch durch mehrere Dateien durchzuwühlen) gibt unter folgenden Umständen bei Fehlern keinen 401:
if (!(conf->auth_authoritative)) {
return DECLINED;
if (!conf->auth_pwfile) {
return DECLINED;
}
und in ein paar anderen Fällen wird 'NULL' zurückgegeben. Kann deine Passwort-Datei also nicht gelesen werden, kann auch ein 500er kommen. Eigentlich hatte ich in diesem Fall zwar einen 401er im Kopf, aber das habe ich dann wohl verwechselt.
Wie sieht denn jetzt deine korrigierte AuthUserFile-Direktive aus?
AuthUserFile "c:/programme/pfad/.htpasswd"
Wobei XAMP da ja wieder etwas emuliert/modifiziert, sodass physische Pfade im Unix-Stiel /var/www/... möglich sind...
Danke, ich weiß jetzt wo der Fehler war: bei AuthUserFile gesamten Pfad angeben.
MfG
tomgk
Hi,
Danke, ich weiß jetzt wo der Fehler war: bei AuthUserFile gesamten Pfad angeben.
das hatte ich dir ja schon vor über drei Stunden gesagt. Lesen musst du schon selbst.
So long,
Martin
Hallo tomgk!
Beim suchen von error.log in Dateisystem wurden nur PHP-Fehlerseiten gefunden.
Irgendwie hast Du Probleme mit der Suchfunktion, oder? Warum sollten PHP-Dateien beim »Suchen nach Dateien oder Ordnern mit error.LOG im Dateinamen« gefunden werden?
Normalerweise befindet sich die Datei »error.log« (und nur um diese Datei geht, bzw. ging es hier - Dein Problem scheint ja gelöst zu sein) unter /xampp/apache/logs/, zusammen mit der access.log
Viele Grüße aus Frankfurt/Main,
Patrick
Hab die Datei gefunden: Sie heist error.txt
Hallo,
du hast nun schon mehrmals einen Rüffel bekommen - und Antworten, die dir nicht helfen.
Warum? Weil uns deine Art zu fragen nicht hilft.
Also bitte: Wenn du eine zielführende Antwort möchtest, stelle eine zielführende Frage! Gib uns die nötigen Randinformationen, damit wir überhaupt die Möglichkeit haben, eine sinnvolle Antwort zu geben.
Zuverlässig funktionierende Glaskugeln sind heutzutage schwer erhältlich.
Ich habe mit .htaccess versucht ein Verzeichnis zu schützen
Auf Deutsch: Du hast in der Konfigurationsdatei .htaccess gefordert, dass HTTP-Authentication für den Zugriff auf dieses Verzeichnis notwendig ist.
aber wenn ich Benutzername und Passwort eingebe kommt eine 500-Seite obwohl der Benutzername und das Passwort stimmt!
Das deutet darauf hin, dass eine weitere Direktive in deiner .htaccess fehlerhaft ist, die aber erst *nach* der Passwortabfrage zum Tragen kommt. Was *wirklich* das Problem ist, kann dir erst jemand verraten, wenn du Einzelheiten preisgibst.
So long,
Martin
Ich habe ein paar Fragen wegen dieser Datei:
1. Wird zuerst in Hosts gesucht oder im Internet?
z.B. wenn man in hosts "127.0.0.1 www.google.at" eingibt wird dann dieser
Eintrag genommen oder die Google-Seite
2.Ist es möglich ein Verzeichnis von einen Server einzugeben
z.B. "127.0.0.1/verzeichnis Verz"
oder z.B.:"127.0.0.1:80" ist localhost/xampp
Hallo,
- Wird zuerst in Hosts gesucht oder im Internet?
erst inder hosts-Datei. Wenn da kein Eintrag für den gesuchten Host drin ist, wird das DNS befragt.
2.Ist es möglich ein Verzeichnis von einen Server einzugeben
z.B. "127.0.0.1/verzeichnis Verz"
Nein, wie der Name der Datei schon vermuten lässt: Nur den Hostnamen! Alles andere wäre ja schon wieder protokollspezifisch.
Ciao,
Martin