Htaccess findet Htpasswd nicht
Reinhard Schmid
- html
0 Götz0 mac0 Hunold0 Ralf Rapude0 Reinhard Schmid0 Ralf Rapude0 Reinhard Schmid0 Ralf Rapude0 ich
Hallo,
jetzt habe ich mir zum testen den Apache Web-Server auf meinem
Rechner installiert und habe jetzt das Problem das htacces nicht funktioniert. Es kommt zwar das Popupfenster das mich nach dem Benutzername und Kennwort fragt aber anscheinend wird die .htpasswd nicht gefunden. Muss ich vielleicht bei Apache in der httpd.conf noch etwas ändern oder kann ich die Standard Einstellungen behalten.
Der Webserver lieg unter:
c:\programme\apache group\apache\
Das Web liegt unter:
c:\programme\apache group\apache\htdocs
und dort habe ich auch die beiden Dateien .htaccess und .htpasswd reingelegt.
Der Inhalt der .htaccess ist:
AuthType Basic
AuthName "Restricted Directory"
AuthUserFile /htdocs/.htpasswd
require valid-user
Der Inhalt der .htpasswd ist:
username:6Ff5IQPTBWPQc
Vielleicht kann mir hier jemand helfen ich bin nämlich schon am verzweifeln weil ich es einfach nicht hinkriege.
Vielen Dank schon mal,
Schöne Grüße
Reinhard
Hallo Reinhard,
AuthUserFile /htdocs/.htpasswd
Versuch's mal ,wenn du hier den _ganzen_ Pfad eingibst.
Ich hab zwar bei meinem Winapachen kein htaccess laufen ... (könnte ich mal schaun wie das geht ;), aber online auf dem richtigen Webserver hab ich das glaub mit den _kompletten_ Pfaden.
MfG
Götz
hallo reinhard
ich hatte kürzlich damit zu tun. was ev.das problem sein könnte: die pfadangabe bei AuthUserFile muss absolut sein. d.h. das ganze rootverzeichnis bis zum htacces-file. also nicht wie bei relativen angaben, z.b. /ordner/file (auf webservern brauchst du die info vom webspace-anbieter)
kann sein das dort das problem liegt. ich hoffe du kriegst es bald hin.
gruss
mac
Moin,
da gibt es hier eine tolle Erklärung auf diesen Seiten ;-)
Und auch Google liefert zum Thema htacess eine Menge Infos.
Die Passwordabfrage, so wie sie jetzt da steht kann nicht laufen, da noch etwas fehlt. Wahrscheinlich ist auch, das das Password nicht richtig generiert wird (SALT benutzt?).
Allerdings gibt es Unterschiede von Linux und Windoof. Das sollte berücksichtigt werden.
Hunold
Hi,
habe mal eine .htacess kopiert, wie sie auf einem unserer Webs läuft:
AuthType Basic
AuthName admin
AuthUserFile "hier steht der komplette Pfad bis zur .htpasswd
<Limit GET POST>
require valid-user
order deny,allow
allow from all
</Limit>
c:\programme\apache group\apache\htdocs
würde mich meinen Vorgängern anschließen und das mal versuchen einzugeben als Pfad zur .htpasswd
Vielleicht kann mir hier jemand helfen ich bin nämlich schon am verzweifeln weil ich es einfach nicht hinkriege.
Gib doch mal Bescheid, obs geklappt hat. Würde mich auch sehr interessieren. Ist wohl auch ein nicht so einfaches Kapitel.
Gruß Ralf
Hallo,
ich habe jetzt die .htaccess so geändert:
AuthType Basic
AuthName admin
AuthUserFile "c:\programme\apache group\apache\htdocs.htpasswd"
<Limit GET POST>
require valid-user
order deny,allow
allow from all
</Limit>
aber es geht trotzdem nicht.
In der httpd.conf steht dieser Eintrag:
<Directory "C:/Programme/Apache Group/Apache/htdocs">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
AccessFileName .htaccess
Ist das alles richtig?? oder könnte das Problem auch hier liegen??
Schöne Grüße
Reinhard
Hi,
da kann ich auch nur noch raten:
AuthUserFile "c:\programme\apache group\apache\htdocs.htpasswd"
In der httpd.conf ist aber angegeben:
C:/Programme/Apache Group/Apache/htdocs
Versuche das mal genauso einzugeben. Ich weiß zwar nicht genau ob die ganze Geschichte Case-Sensitive ist, kann aber ja durchaus sein.
Außerdem würde ich mal das leerzeichen aus apache group rausnehmen und in apachegroup ändern.
Hoffe das hilft weiter
Gruß Ralf
Hallo,
jetzt gehts :-)))
Nachdem ich dank Euerer Hilfe den richtigen Pad gefunden und eingetragen habe ging es noch nicht, dann habe ich aber in der Log Datei gesehen das die .htpasswd zwar gefunden wird aber das Passwort nicht erkannt wurde. Ich habe das Passwort mit verschiedenen Generatoren vom Internet generiert aber anscheinend funktionieren solche Passwörter nur auf Unix (Ich habe hier W2K). Dann habe ich entdeckt das es bei Apache auch eine Htpasswd.exe gibt mit der man sich seine User und Passwörter erzeugen kann uns schon funktioniert alles.
Sooooo einfach und trotzdem stundenlang gesucht.
Vielen Dank nochmal für die Antworten, diese Forum hier ist wirklich spitze,
Gruß
Reinhard
jetzt gehts :-)))
Hi,
das ist ja schön. Ich habe mal unter meinem Windows Apache geguckt und da habe ich auch eine htpasswd.exe gefunden. Allerdings passiert da bei mir nix, wenn ich doppelt klicke. Unter Linux kommen abfragen nach benutzernamen und paßwort, aber unter win kommen diese Abfragen nicht. Wie machst du das denn bei dir? Übrigens: Funktioniert das Paßwort jetzt auch unter Linux?
Gruß Ralf
Hi,
das ist ja schön. Ich habe mal unter meinem Windows Apache geguckt und da habe ich auch eine htpasswd.exe gefunden. Allerdings passiert da bei mir nix, wenn ich doppelt klicke.
Alter Mäuseschieber!!! Soweit Apache unter Windows auch gekommen sein mag: Das Programm ist wie folgt zu verwenden: DOS Box öffnen (und wenn du dafür unter ausführen "Command" eingibst.
Oder gleich bei ausführen htpasswd mit entsprechender Option benutzen...
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password (default).
-d Force CRYPT encryption of the password.
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
On Windows, TPF and NetWare systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.
Nun noch die Erklärung, warum das mit dem Paßwort nicht so funktioniert.
Die Generatoren für Passwörter unter Linux benutzen meistens die crypt() funktion, die unter Linux vorhanden ist. Das Ergebnis ist aber 1. nicht mehr so schwer zu knacken, denn diese form der verschlüsselung ist schon etwas älter, und 2. gibt es unter Windows kein crypt(). Also hat man sich hier für MD5 zur verschlüsselung entschieden... Neuere Apache Versionen unterstützen dies inzwischen wohl auch unter Linux (will ich mal so unterstellen: hab ich nie getestet)... die crypt geschichte gibt es aber noch weiterhin.
Was passiert jetzt bei der Passworteingabe?
Passwort wird einegeben und an den Server übertragen (Wahrscheinlich geschieht dies noch als Klartext. Noch etwas wo ich mir nicht sicher bin. Ist aber hierfür nicht wichtig) Dort wird das dann (spätestens) verschlüsselt und mit dem in der Passwortdatei gespeicherten Zeichenkette verglichen. (na was gemerkt? Das gespeicherte Passwort wird nicht entschlüsselt, was auch nicht gehen sollte). Wurde nun das Passwort in der Datei mit crypt verschlüsselt und der Webserver vergleicht das eingehende Passwort damit, nachdem er es per MD5 verschlüsselt hat, kommt er natürlich zu dem Schluß: "Das Teil paßt nicht zusammen! Also Access denied!".
Alter Mäuseschieber!!!
Hiho,
was zur Hölle ist denn ein Mäuseschieber!? Da hab ich ja mein Lebtag noch nicht von gehört ;o).
Ich habe den Apache auf dem Notebook unter Windows laufen, nutze den aber nur für PHP zu Hause.
Im Büro steht ein Uralt Rechner, auf dem Suse läuft. Da ist es über die Shell ja gänzlich unproblematisch, eine Paßwortfile zu erzeugen.
Ich habe schon öfter gehört, dass man möglichst systemnah entwickeln soll, d.h. wenn das Web auf einem Apache - Server publiziert wird, sollte es eben auch auf einen Apache entwickelt werden und wenn es auf einem Nt-Server oder sonstwo laufen soll, denn sollte die Entwicklung eben auch auf einem solchen Server erfolgen.
Wahrscheinlich ist das ja wohl aus eben den von dir genannten Gründen sinnvoll.
Dank für die ausführliche Erklärung
Gruß Ralf
Was passiert jetzt bei der Passworteingabe?
Passwort wird einegeben und an den Server übertragen (Wahrscheinlich
geschieht dies noch als Klartext. Noch etwas wo ich mir nicht sicher bin.
http://httpd.apache.org/docs/mod/mod_digest.html
Dort wird das dann (spätestens) verschlüsselt und mit dem in der
Passwortdatei gespeicherten Zeichenkette verglichen.
(na was gemerkt? Das gespeicherte Passwort wird nicht entschlüsselt,
was auch nicht gehen sollte).
</selfaktuell/artikel/schroepl02.htm#a4>