Archiv verlassen und diese Seite im Standarddesign anzeigen : Kennwortabfrage mit .htaccess
crystal_ice
29.03.09, 19:04
Hallo,
ich bin neu hier und habe gleich mal eine Frage :)
Ich habe einen Apache2 unter openSuSE 11.0 laufen. Dort habe ich ein Verzeichnis /srv/www/htdocs/test/ liegen, welches erst nach Eingabe von Benutzernamen und Kennwort geöffnert werden soll.
Nun habe ich mir nach Anleitung eine .htaccess-Datei folgenden Inhalts in das Verzeichnis /srv/www/htdocs/test/ gelegt:
AuthType Basic
AuthName "Interner Bereich"
AuthUserFile /srv/www/htdocs/test/.htpasswd
require user valid-user
Im gleichen Verzeichnis liegt auch die .htpasswd:
Test:B/vq3oqT.GE6s
Wenn ich nun versuche, h**p://localhost/test/ aufzurufen, dann bekomme ich keine Abfrage nach Username und Passwort, obwohl das doch eigentlich der Fall sein sollte.
Ich habe dann weitergelesen, man sollte eine Änderung in der httpd.conf vornehmen - also Änderung in /etc/apache2/httpd.conf vorgenommen:
# forbid access to the entire filesystem by default
<Directory /srv/www/htdocs/test>
Options None
AllowOverride All
Order deny,allow
Deny from all
</Directory>
# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
... AllowOverride stand "None", das habe ich auf "All" gesetzt.
Apache neugestartet - kein Erfolg. Ich bekomme keine Abfrage, wenn ich die URL h**p://localhost/test/ abrufe.
Kann mir jemand sagen, was ich falsch gemacht bzw. vergessen habe?
Mal die Logs gecheckt?
Verwende mal in Zukunft die Code-Tags des Forums!
Greeez Oli
Den Bereich, den Du geändert hast solltest Du besser in Ruhe lassen - der Pfad dort stand bestimmt auf / - und der sollte so auch bleiben, ebenso das AllowOverride none.
Vermutlich (hab' gerade keinen Apache unter OS11 hier) gibt's irgendwo einen Config-Datei, in der div. vHosts definiert werden - in diesem solltest Du die erforderlichen Änderungn machen - poste dazu aber am besten mal die komplette relevante Apache-Konfig.
crystal_ice
30.03.09, 10:17
@zyrusthc: In den logs taucht nichts verdächtiges auf.
Den Bereich, den Du geändert hast solltest Du besser in Ruhe lassen - der Pfad dort stand bestimmt auf / - und der sollte so auch bleiben, ebenso das AllowOverride none.
Die Änderungen habe ich gemacht, weil es laut Anleitung notwendig ist (Zitat: In der Zeile AllowOverride muß statt dem Wert None der Wert All eingetragen werden, damit das Überschreiben der allgemeinen Regeln durch die .htaccess-Datei erlaubt ist.). Auch wenn ich die Einstellungen auf / und None zurücksetzte, funktioniert es nicht.
Vermutlich (hab' gerade keinen Apache unter OS11 hier) gibt's irgendwo einen Config-Datei, in der div. vHosts definiert werden - in diesem solltest Du die erforderlichen Änderungn machen - poste dazu aber am besten mal die komplette relevante Apache-Konfig.
### Global Environment ################################################## ####
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests.
# run under this user/group id
Include /etc/apache2/uid.conf
# - how many server processes to start (server pool regulation)
# - usage of KeepAlive
Include /etc/apache2/server-tuning.conf
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog /var/log/apache2/error_log
# generated from APACHE_MODULES in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/loadmodule.conf
# IP addresses / ports to listen on
Include /etc/apache2/listen.conf
# predefined logging formats
Include /etc/apache2/mod_log_config.conf
# generated from global settings in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/global.conf
# optional mod_status, mod_info
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf
# optional cookie-based user tracking
# read the documentation before using it!!
Include /etc/apache2/mod_usertrack.conf
# configuration of server-generated directory listings
Include /etc/apache2/mod_autoindex-defaults.conf
# associate MIME types with filename extensions
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf
# set up (customizable) error responses
Include /etc/apache2/errors.conf
# global (server-wide) SSL configuration, that is not specific to
# any virtual host
Include /etc/apache2/ssl-global.conf
# forbid access to the entire filesystem by default
<Directory /srv/www/htdocs/test>
Options None
AllowOverride All
Order deny,allow
Deny from all
</Directory>
# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# List of resources to look for when the client requests a directory
DirectoryIndex index.html index.html.var
### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf
# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf
### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/*.conf
# Note: instead of adding your own configuration here, consider
# adding it in your own file (/etc/apache2/httpd.conf.local)
# putting its name into APACHE_CONF_INCLUDE_FILES in
# /etc/sysconfig/apache2 -- this will make system updates
# easier :)
natürlich ist eine entsprechende Einstellung notwendig - aber eben an der richtigen Stelle. Und die dürfte sich in der Definition des vHosts befinden. Vermutlich wurde die von Dir gemachte Einstellung irgendwann später in der Config wieder überschrieben - man beachte die Tausende Includes...
Übrigens braucht es kein "all" sondern nur ein "AuthConfig". Mehr dazu findet sich in der Apache-Doku, ebenso lesenswertes, wie entsprechende Einstellungen vererbt werden und sinnvoll anzuordnen sind...
Ich habe hier auch eine SuSE 11 am laufen und in der httpd.conf folgende Änderung durchgeführt:
# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "/srv/www/htdocs/phpMyAdmin">
AllowOverride All
</Directory>
<Directory "/srv/www/htdocs/JT">
AllowOverride All
</Directory>
# use .htaccess files for overriding,
Danach einfach /etc/rc.d/apache2 restart
Danach sollte es tun.
Grüßle
JTMIB
aber eben auch nur, wenn hinterher in irgendeiner anderen Config-Datei nicht wieder anderes definiert wird.
(Ja, es hat auch seine Nachteile, die Apache-Konfig zu splitten :-)
crystal_ice
30.03.09, 12:20
natürlich ist eine entsprechende Einstellung notwendig - aber eben an der richtigen Stelle. Und die dürfte sich in der Definition des vHosts befinden. Vermutlich wurde die von Dir gemachte Einstellung irgendwann später in der Config wieder überschrieben - man beachte die Tausende Includes...
Übrigens braucht es kein "all" sondern nur ein "AuthConfig". Mehr dazu findet sich in der Apache-Doku, ebenso lesenswertes, wie entsprechende Einstellungen vererbt werden und sinnvoll anzuordnen sind...
Es läuft :)
Du hattest recht, anstatt in der http.conf muß der Eintrag in der default-server.conf stehen (zumindest bei meiner konfiguration). Ich danke dir, you make my day :).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.