Daniel: .htaccess Tutorial

Hi,
ich habe hier schon des öfteren was von .htaccess Dateien gelesen. Da
ich auch Websites erstelle interesiert mich das Thema Sicherheit
natürlich. gibt es irgendwo ein gutes Tutorial oder ähnliches damit ich
den umgang, das erstellen etc. von .htaccess dateien lernen kann? sowas
wie SELFhtaccess???

MfG

  1. Hallo Daniel.

    Hier ist ein kleines Tutorial von SelfHTML zum Thema htaccess:
    http://de.selfhtml.org/servercgi/server/htaccess.htm

    Man liest sich, H2O

    --
    #*~!:     Download Opera
    Selfcode: ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}
                              Decoder    -    Infos
    1. Hi,

      http://de.selfhtml.org/servercgi/server/htaccess.htm

      danke. hab mir das hier

      AuthType Basic
      AuthName "Service-Bereich"
      require user  Werner Dieter Heidi
      require group Servicetechniker

      da grad auskopiert, und als .htaccess in einen ordner gespeichert, der
      fragt mich aber kein passwort, woran könnte das liegen? hab mal gehört
      das man die .htaccess datein vom Server her "deaktivieren" kann. wo kann
      ich kucken obs deaktiviert ist?

      MfG

      1. Hallo Daniel.

        da grad auskopiert, und als .htaccess in einen ordner gespeichert, der
        fragt mich aber kein passwort, woran könnte das liegen? hab mal gehört
        das man die .htaccess datein vom Server her "deaktivieren" kann. wo kann
        ich kucken obs deaktiviert ist?

        So gut kenne ich mich auch nicht damit aus, aber bist du denn sicher, dass dein Server auch .htacces annimmt?
        Sprechen wir von deinem localhost? Ansonsten lese dir am Besten mal durch, ob dein Anbieter .htacces erlaubt.

        Man liest sich, H2O

        --
        #*~!:     Download Opera
        Selfcode: ie:% fl:( br:< va:) ls:[ fo:| rl:( n4:( ss:) de:> js:| ch:? sh:( mo:| zu:}
                                  Decoder    -    Infos
        1. Hi,

          So gut kenne ich mich auch nicht damit aus, aber bist du denn sicher, dass dein Server auch .htacces annimmt?

          Ist Appache, falls du das meinst, und da geht .htaccess ja.

          Sprechen wir von deinem localhost?

          jupp, will erstma local etwas rumprobiern bevor ichs on stelle. und
          daher wäre es kein problem die deaktivierung, fals vorhanden
          rauszunehmen.

          MfG

          1. Hi Daniel,

            So gut kenne ich mich auch nicht damit aus, aber bist du denn sicher, dass dein Server auch .htacces annimmt?

            Ist Appache, falls du das meinst, und da geht .htaccess ja.

            Die Frage von H2O bezog sich wohl eher darauf, ob die Verwendung von .htaccess Dateien bei deinem Apache Server erlaubt ist - in der Konfiguration für den Apachen lässt sich nämlich die Verwendung von .htaccess Dateien bzw. deren Beachtung (auch für einzelne Ordner) deaktivieren.

            Sprechen wir von deinem localhost?

            jupp, will erstma local etwas rumprobiern bevor ichs on stelle. und
            daher wäre es kein problem die deaktivierung, fals vorhanden
            rauszunehmen.

            Noch mal zurück zu deinem Code:

            require user  Werner Dieter Heidi  
            require group Servicetechniker
            

            Diese beiden Zeilen hast du nur so aus SelfHTML kopiert, anscheinend ohne dier das genauer durchzulesen. Verwende einfach nur diese Zeile:

            require valid-user

            Unabhängig davon fehlt in deinem Code aber eine wichtige Zeile, nämlich die Zeile, die den Pfad zu der Datei angibt, in der die User mit den Passwörtern drinstehen. Das sieht so aus:

            AuthUserFile /usr/verwaltung/web/.htusers

            Der Pfad muss ein absoluter Pfad sein - so wie du es oben siehst ist es ein Linux Pfad, wenn du unter Windows arbeitest, müsstest du es z.B. so schreiben: C:/Pfad/zur/.htusers

            Wie du die eigentliche Passwort Datei gestaltest (die muss übrigens nicht .htusers heißen), steht auch in dem Artikel. Beachte, dass du unter Linux die Passwörter verschlüsselt in die Datei speichern musst, unter Windows jedoch unverschlüsselt.

            MfG, Dennis.

            --
            Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
            Man sollte nie aufhören zu fragen (Alber Einstein)
            ... aber natürlich erst, nachdem man sämliche FAQ's und Archive durchgelesen hat :-P
            1. Hi,

              Die Frage von H2O bezog sich wohl eher darauf, ob die Verwendung von .htaccess Dateien bei deinem Apache Server erlaubt ist

              und wo seh ich das?? phpinfo();?

              Noch mal zurück zu deinem Code:

              code in .htaccess:
              AuthType Basic
              AuthName "Service-Bereich"
              AuthUserFile c:\pfad.htusers
              require valid-user

              wenn im pfad ein leerzeichen(" ") ist macht das dann probleme?

              1. Hi Daniel,

                Die Frage von H2O bezog sich wohl eher darauf, ob die Verwendung von .htaccess Dateien bei deinem Apache Server erlaubt ist

                und wo seh ich das?? phpinfo();?

                Wie kommst du auf die Idee, dass die Konfiguration von PHP etwas mit der Konfiguration deines Servers zu tun hätte? Abgesehen davon schriebe ich doch: "in der Konfiguration(sdatei) für den Apachen" -> dabei handelt es sich um die httpd.conf

                AuthType Basic
                AuthName "Service-Bereich"
                AuthUserFile c:\pfad.htusers
                require valid-user

                wenn im pfad ein leerzeichen(" ") ist macht das dann probleme?

                Ich denke schon, versuche also mit Pfadangaben ohne Leerzeichen auszukommen - du kannst allerdings auch mal probieren, den Pfad dann in "" zu setzen.

                Weiterhin denke ich, dass du den Pfad mit Slashes und nicht mit Backslashes schreiben musst, da in der httpd.conf die Pfade generell immer so angegeben werden. Backslashes müsstest du vermutlich escapen, aber versuch es lieber erst gar nicht ;-)

                MfG, Dennis.

                --
                Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)
                1. Hi,
                  wo steht in der Konfig ob .htaccess erlaubt ist?
                  das hier steht in der httpd.conf bei LoadMod:

                  LoadModule access_module modules/mod_access.so
                  LoadModule actions_module modules/mod_actions.so
                  LoadModule alias_module modules/mod_alias.so
                  LoadModule asis_module modules/mod_asis.so
                  LoadModule auth_module modules/mod_auth.so
                  #LoadModule auth_anon_module modules/mod_auth_anon.so
                  #LoadModule auth_dbm_module modules/mod_auth_dbm.so
                  #LoadModule auth_digest_module modules/mod_auth_digest.so
                  LoadModule autoindex_module modules/mod_autoindex.so
                  #LoadModule cern_meta_module modules/mod_cern_meta.so
                  LoadModule cgi_module modules/mod_cgi.so
                  #LoadModule dav_module modules/mod_dav.so
                  #LoadModule dav_fs_module modules/mod_dav_fs.so
                  LoadModule dir_module modules/mod_dir.so
                  LoadModule env_module modules/mod_env.so
                  #LoadModule expires_module modules/mod_expires.so
                  #LoadModule file_cache_module modules/mod_file_cache.so
                  #LoadModule headers_module modules/mod_headers.so
                  LoadModule imap_module modules/mod_imap.so
                  LoadModule include_module modules/mod_include.so
                  #LoadModule info_module modules/mod_info.so
                  LoadModule isapi_module modules/mod_isapi.so
                  LoadModule log_config_module modules/mod_log_config.so
                  LoadModule mime_module modules/mod_mime.so
                  #LoadModule mime_magic_module modules/mod_mime_magic.so
                  #LoadModule proxy_module modules/mod_proxy.so
                  #LoadModule proxy_connect_module modules/mod_proxy_connect.so
                  #LoadModule proxy_http_module modules/mod_proxy_http.so
                  #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
                  LoadModule negotiation_module modules/mod_negotiation.so
                  #LoadModule rewrite_module modules/mod_rewrite.so
                  LoadModule setenvif_module modules/mod_setenvif.so
                  #LoadModule speling_module modules/mod_speling.so
                  #LoadModule status_module modules/mod_status.so
                  #LoadModule unique_id_module modules/mod_unique_id.so
                  LoadModule userdir_module modules/mod_userdir.so
                  #LoadModule usertrack_module modules/mod_usertrack.so
                  #LoadModule vhost_alias_module modules/mod_vhost_alias.so
                  #LoadModule ssl_module modules/mod_ssl.so

                  warum ist da manchmal ein # davor? das ist doch für kommentar. heißt das die mit # vornedran werden nichtgeladen, oder?

                  MFg

                  1. Hi Daniel,

                    warum ist da manchmal ein # davor? das ist doch für kommentar.

                    richtig.

                    heißt das die mit # vornedran werden nicht geladen, oder?

                    Genau so ist es.

                    Für eine Authentifizierung müsste eines bzw. beide folgenden Module verantwortlich sein:

                    LoadModule access_module modules/mod_access.so  
                    LoadModule auth_module modules/mod_auth.so
                    

                    Wenn du z.B. mod_rewrite nutzen möchtest, womit du URL's umleiten kannst (z.B. /foo soll auf /index.php?page=foo verweisen, /bla entsprechend auf /index.php?page=bla), müsstest du folgende Zeile mit einbeziehen, also das Kommentarzeichen entfernen:

                    #LoadModule rewrite_module modules/mod_rewrite.so

                    MfG, Dennis.

                    --
                    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                    That's life - Es gibt im Leben[tm] keine Zurück-Taste. (Fabian Transchel)
      2. Hallo Daniel

        da grad auskopiert, und als .htaccess in einen ordner gespeichert, der
        fragt mich aber kein passwort, woran könnte das liegen? hab mal gehört
        das man die .htaccess datein vom Server her "deaktivieren" kann. wo kann
        ich kucken obs deaktiviert ist?

        Welchen Wert hat AllowOverride in der Serverkonfiguration? Wird das Modul mod_auth geladen? Hast du ein AuthUserFile angelegt und angegeben?

        Wenn das nicht weiterhilft: (Steht) was steht im Error-Log?

        Schöne Grüße,

        Johannes

        --
        ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
        1. HI,

          Welchen Wert hat AllowOverride in der Serverkonfiguration?

          wo kann ich das nachschaun?

          Wird das Modul mod_auth geladen?

          wo kann ich das nachschaun?

          Hast du ein AuthUserFile angelegt und angegeben?

          ja, glaub aber das es nicht so richtig funktioniert da ich ein
          leerzeichen im pfad habe. warum macht der garnichts wenn er die datei
          nicht findet? oder sollte er etwas machen? bei mir regt sich jedenfalls
          nichts.

          MfG

          1. Hallo Daniel,

            Welchen Wert hat AllowOverride in der Serverkonfiguration?

            wo kann ich das nachschaun?

            In deiner Serverkonfiguration. Normalerweise sollte die httpd.conf oder so ähnlich heißen.

            Wird das Modul mod_auth geladen?

            wo kann ich das nachschaun?

            Ebenfalls in der Serverkonfiguration, gucke unter LoadModule. Aber wenn das nicht installiert wäre, sollte es eigentlich einen 500er-Error geben.

            Hast du ein AuthUserFile angelegt und angegeben?

            ja, glaub aber das es nicht so richtig funktioniert da ich ein
            leerzeichen im pfad habe. warum macht der garnichts wenn er die datei
            nicht findet? oder sollte er etwas machen? bei mir regt sich jedenfalls
            nichts.

            Aus der Ferne kann man das schlecht beurteilen, da man keinen Zugriff auf den Server hat. Versuch mit einer Pfadangabe ohne Leerzeichen auszukommen, das sollte man aus solchen Gründen sowieso immer tun. Ich vermute auch, dass du bei der Pfadangabe keine Backslashes (''), sondern einfach Slashes ('/') verwenden musst.

            Schöne Grüße,

            Johannes

            --
            ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
            1. Hi,

              AllowOverride controls what directives may be placed in .htaccess files.

              It can be "All", "None", or any combination of the keywords:

              #   Options FileInfo AuthConfig Limit

              AllowOverride All

              da stand
              AllowOverride None

              MfG

              1. Hi Daniel,

                AllowOverride All

                Für deinen Fall hätte eigentlich auch AllowOverride AuthConfig reichen müssen.

                MfG, Dennis.

                --
                Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
                Das Leben ist kein Warenhaus - es nimmt nichts zurück. (Anette Louisan)