tomgk: Xampp-.htaccess

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!

  1. 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

  2. Hallo tomgk

    Poste doch mal deine .htaccess und erzaehl, was fuer ein Betriebsystem du benutzt

    Gruss

    Dieter

    1. 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.

      1. 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

        --
        Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
          (Gernot Back)
        1. 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

          1. 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

            --
            -------------------
            sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
            Vegetarier essen meinem Essen das Essen weg.
            1. 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

              1. 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>

                1. »»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?

                  1. 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.

                    1. 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.

                      1. 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.

                        1. Hatte ich auch gedacht und habe verschlüsselte gepeichert aber es funktionierte nicht. Als ich es unverschlüsselt speicherte funktionierte es.

                    2. 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

                      --
                      "Love your nation - respect the others."
                      1. 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?

                        1. 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

                          --
                          "Love your nation - respect the others."
                2. 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...

                  1. Danke, ich weiß jetzt wo der Fehler war: bei AuthUserFile gesamten Pfad angeben.

                    MfG
                    tomgk

                    1. 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

                      --
                      Drei Sachen vergesse ich immer wieder: Telefonnummern, Geburtstage und ... äääh ...
              2. 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

                --

                _ - jenseits vom delirium - _
                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                Nichts ist unmöglich? Doch!
                Heute schon gegökt?
                All'alba vincerò!
                1. Hab die Datei gefunden: Sie heist error.txt

  3. 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

    --
    Gott hilft niemandem, er erfreut sich nur an unseren Leiden.
      (Ashura)
  4. 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

    1. Hallo,

      1. 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

      --
      Bitte komme jemand mit einem *g* zum Wochenende, damit nicht über mich gelacht wird.
        (Gunnar Bittersmann)