.htaccess Datei wird nicht verarbeitet

Webmaster Pazi

Cadet 3rd Year
Registriert
Dez. 2009
Beiträge
46
Hallo Community!

Ich habe nun Apache 2.2 frisch installiert, es funktioniert soweit alles gut. Gerade kam ich aber drauf, dass einige Verzeichnisse nicht geschützt sind! Z.b.: Ist in dem Verzeichniss /test eine .htaccess Datei mit folgendem Inhalt:

Code:
Deny from all

Jedoch passiert nichts, und das Verzeichniss kann über den Webbrowser Aufgerufen werden.

Wisst ihr was da sein könnte? Oder muss ich jetzt htaccess extra aktivieren?

mfg
 
Order Deny,Allow
Deny From All
Allow From [deine ip]

Dann das Logfile checken, ggf. ist AllowOverride auf None gesetzt. Das muss man dann noch aktivieren.
 
Danke für eure Antworten!

Ihr habt mich glaub ich falsch verstanden. In dem Verzeichniss /test liegt eine .htaccess Datei, die den Zugriff auf dieses Verzeichniss verbieten will. Jedoch kann ich das Verzeichniss per Web-Browser immernoch aufrufen. Auf dem alten Web-Server Funktionierte dies, aber hier wird die .htaccess - Datei nicht verarbeitet oder keine Ahnung was da schief läuft. :(
 
a2enmod MODUL ??
a2enmod um Module zu laden a2dismod um sie zu deaktivieren. Aber .htaccess funktioniert bei Apache2 doch grundsätzlich, oder?

Alternativ mal in die error.log gucken :)
 
Zuletzt bearbeitet:
Muss soweit ich das noch weiß in der config des Apache liegen ob er die liest oder nicht. Einfach mal mit vi öffnen und danach durchsuchen lassen.
 
Nein, das hilft mir nicht weiter, das hatte ich schon davor durchgelesen.

Das kann trotzdem nicht sein, dass .htaccess nicht funktioniert, nicht mal .htpasswd funktioniert bzw wird überhaupt nicht von apache anerkannt!

Hat jemand noch Tipps oder andere möglichkeiten für mich?
 
Schau mal nach, ob beim betreffenden vhost die Eigenschaft AllowOverride auf All gesetzt ist.

Code:
AllowOverride All
 
Hmm in der apache2.conf existiert die zeile nicht mal. Ich habe diese Zeile nun hinzugefügt, jedoch kommt beim restarten des apache eine Fehlermeldung?

Oder habe ich da die Falsche Config geändert? Wenn ja, welche muss ich ändern?
 
Zuletzt bearbeitet:
Diese "Direktive" ist nicht überall erlaubt: http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

gruß
hostile
Ergänzung ()

Tu diese Direktive in eine Directory-Direktive (<Directory ...></Directory>).

gruß
hostile
Ergänzung ()

Dann kannst du auch noch andere Direktiven in der .htaccess ablegen.
Wenn du nur Deny/Allow/Order erlauben willst, dann schreib: "AllowOverride Limit".
Steht alles auf der Dokumentationsseite. Man muss es nur lesen ;)

gruß
hostile
 
Ich habe jetzt folgenden Code in die httpd.conf eingefügt:

Code:
<Directory /var/www>
    AllowOverride All
</Directory>

Leider wird die .htaccess Datei noch immer ignoriert. :(

Ich habe Debian 6.0 64Bit, und apache mit den apache2 packet installiert. Das sollte doch dann automatisch aktiviert sein.. ich verstehs einfach nicht :(
 
Zuletzt bearbeitet:
Also in Debilian Squeeze siehts im Default folgendermaßen aus:
/etc/apache2/apache/apache2.conf
AccessFileName .htaccess


das AllowOverrice ist dort unter
/etc/apache2/apache/conf.d/security

Sonst einfach mal bei so gesplitteten Configs grep mit -e verwenden
 
Ja klar lade ich Apache neu.

/usr/sbin/apache2 -l gibt folgendes aus:
Code:
Compiled in modules:
core.c
mod_log.config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c

Ja, die .htaccess liegt in /var/www bzw /var/www/data das ist bei mir das Verzeichniss für die Website.

Also in Debilian Squeeze siehts im Default folgendermaßen aus:
/etc/apache2/apache/apache2.conf
AccessFileName .htaccess

Ja, das hatte ich bereits so Konfiguriert.

das AllowOverrice ist dort unter
/etc/apache2/apache/conf.d/security

Code:
#<Directory />
#	AllowOverride All
#	Order Deny,Allow
#	Deny from all
#</Directory>

Das ? Wenn ja, die Rauten hatte ich auch schon entfernt, das nutzte jedoch auch nichts. Ich hatte auch folgendes probiert in der security-Datei:

Code:
<Directory /var/www>
    AllowOverride All
</Directory>

Sonst einfach mal bei so gesplitteten Configs grep mit -e verwenden

Bitte, was?
 
Zitat:
Sonst einfach mal bei so gesplitteten Configs grep mit -e verwenden
Bitte, was?

Bei mir Zustand geistiger Umnachtung sry :D
Ergänzung ()

http://httpd.apache.org/docs/2.2/mod/core.html#options
http://httpd.apache.org/docs/current/mod/core.html#allowoverride

Mach mal in /var/www/ ein neues Verzeichnis. Dann sagste das neue dir in der security datei an.
Code:
<Directory /var/www/neubla>
    AllowOverride All
</Directory>
Überprüfe bitte ob:
apache2-utils
apache2-htpasswd-perl
installiert sind obwohl ich denke das letztere braucht man nicht unbedingt.
 
Zuletzt bearbeitet:
Interressant, mit der Verzeichnissangabe "neubla" funktioniert es! Komischerweise mit / oder /var/www nicht, nur mit /var/www/neubla

also, an was liegt es dann? :lol:
 
Guck mal bitte ob in den configs irgendwo was den Apache root einschränkt /var/www wird?
 
Ich finde nichts mit Root oder /var/www in der Config, aber hier steht etwas:

Code:
# The configuration directives are grouped into three basic sections:
#  1. Directives that control the operation of the Apache server process as a
#     whole (the 'global environment').
#  2. Directives that define the parameters of the 'main' or 'default' server,
#     which responds to requests that aren't handled by a virtual host.
#     These directives also provide default values for the settings
#     of all virtual hosts.
#  3. Settings for virtual hosts, which allow Web requests to be sent to
#     different IP addresses or hostnames and have them handled by the
#     same Apache server process.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "foo.log"
# with ServerRoot set to "/etc/apache2" will be interpreted by the
# server as "/etc/apache2/foo.log".
#

### Section 1: Global Environment
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation (available
# at <URL:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#lockfile>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
LockFile ${APACHE_LOCK_DIR}/accept.lock

#

aber ich weiß nicht, ob das richtig ist ;)


Edit:
/etc/apache2/sites-available
beinhaltet die Datei default folgenden Inhalt:

Code:
<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

muss ich da etwas ändern?
 
Zuletzt bearbeitet:
Zurück
Oben