httpd.conf & AllowOverride
Heizer
- webserver
Liebes Forum
Ich versuche seit gestern, .htaccess Dateien mit Apache auf SuSE Linux 7.2 zu laufen zu bekommen, und habe in der /etc/httpd/httpd.conf ALLE "AllowOverride" auf All gesetzt und bekomme trotzdem noch einen "Internat Server Error" (500) wenn ich eine Datei aus dem Verzeichnis aufrufen möchte. Das httpd error.log schreibt:
[alert][client 127.0.0.1] <pfad>/.htaccess : Options not allowed here
die .htaccess Datei sieht folgendermaßen aus:
Option -Idexes
Wie gesagt habe ich ALLE "allowOverride" Einträge auf All gesetzt, auch die zwischen <Directory /></Directory>, und ich weiß nicht, woran es jetzt noch leigen kann. Laut apache-Dokumentation wird diese Eigenschaft doch nur durch "allowOverride" festgelegt.
Wo liegt mein Fehler?
Vielen Dank
Heizer
Liebes Forum
HAllo,
die .htaccess Datei sieht folgendermaßen aus:
Option -Idexes
<Directory /www/meindocumentroot>
Options -Indexes //bewirkt wenn keine mit DirectoryIndex festgelegte datei gefunden wird, eine liste der datein angezeigt wird, bzw bei -Indexes ein 403 Forbidden wenn keine index datei gefunden wird.
AllowOverride All // erlaubt alle commands in einer .htaccess die auch in httpd.conf stehen (very evil)
</Directory>
lg
Ludwig
Liebes Forum
HAllo,
und Gruß zurück
die .htaccess Datei sieht folgendermaßen aus:
Option -Idexes
<Directory /www/meindocumentroot>
Options -Indexes //bewirkt wenn keine mit DirectoryIndex festgelegte datei gefunden wird, eine liste der datein angezeigt wird, bzw bei -Indexes ein 403 Forbidden wenn keine index datei gefunden wird.
AllowOverride All // erlaubt alle commands in einer .htaccess die auch in httpd.conf stehen (very evil)
</Directory>
soweit sogut, was die einzelnen Angaben bedeuten, kann ich ja in SelfHTML nachlesen, aber warum sie nicht funktionieren, weiß ich nicht. ich poste hier mal den entsprechenden Teil meiner httpd.conf (ohne die Kommentare):
<httpd.conf>
DocumentRoot "/usr/local/httpd/htdocs"
<Directory />
AuthUserFile /etc/httpd/passwd
AuthGroupFile /etc/httpd/group
Options -FollowSymLinks +Multiviews
AllowOverride All
</Directory>
<Directory "/usr/local/httpd/htdocs">
Options Indexes -FollowSymLinks +Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_dav.c>
DAV Off
</IfModule>
<Files /usr/local/httpd/htdocs/index.htm*>
Options -FollowSymLinks +Includes +MultiViews
</Files>
<Files test.php3>
Order deny,allow
deny from all
allow from localhost
</Files>
</Directory>
</httpd.conf>
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder? Gibt es da einschränkungen mit Symlinks o.ä.? Ich bin wirklich überfragt
lg
Ludwig
<Directory "/usr/local/httpd/htdocs">
Options Indexes -FollowSymLinks +Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
[...]
</Directory>
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder?
stimmt.
Gibt es da einschränkungen mit Symlinks o.ä.? Ich bin wirklich überfragt
ja gibt es, du hast ja oben in den Options -FollowSymLinks definiert, ändere das mal auf +FlollowSymLinks.
btw. du weißt schon das der apache neugestartet werden muss wenn du das config file änderst ? :)
lg
Ludwig
hi,
wir hatten eine vergleichbare Fragestellung erst vor kurzem.
DocumentRoot "/usr/local/httpd/htdocs"
<Directory />
AuthUserFile /etc/httpd/passwd
AuthGroupFile /etc/httpd/group
Options -FollowSymLinks +Multiviews
AllowOverride All
</Directory>
Nach meiner Erfahrung fährst du hier besser, wenn der erste - unspezifizierte - Directory-Container so aussieht:
<Directory />
AllowOverride None
</Directory>
Das ist zunächst nichts anderes als die "grundsätzliche" Festlegung für Directories, sofern du sie im folgenden nicht individuell bestimmst.
<Directory "/usr/local/httpd/htdocs">
Options Indexes -FollowSymLinks +Includes MultiViews
AllowOverride All
Order allow,deny
Allow from all
<IfModule mod_dav.c>
DAV Off
</IfModule>
<Files /usr/local/httpd/htdocs/index.htm*>
Options -FollowSymLinks +Includes +MultiViews
</Files>
<Files test.php3>
Order deny,allow
deny from all
allow from localhost
</Files>
</Directory>
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder?
Nein. Das gilt nur für Dateien, die in /usr/local/httpd/htdocs liegen.
Gibt es da einschränkungen mit Symlinks o.ä.? Ich bin wirklich überfragt
Nicht prinzipiell. Aber du hast selber solche Einschränkungen bereits vorgenommen (übrigens nicht ganz logisch), indem du geschrieben hast: -FollowSymLinks.
Christoph S.
Moin moin!
Options Indexes -FollowSymLinks +Includes MultiViews
Diese Zeile macht keinen Sinn. Entweder Du legst direkt eine Reihe von Optionen fest, indem Du kein +/- vor die Woerter schreibst. Oder Du schaltest einzelne Optionen mit +/- relativ zu den vorher gueltigen Optionen ein oder aus. Aber so einen Mischmasch da gibt's nicht.
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder?
Nein. Das gilt nur für Dateien, die in /usr/local/httpd/htdocs liegen.
Haeh? Wieso das denn?
So long
--
Scientists say there are over 3,000 spiders for every human being on earth. Does anybody want mine? I certainly don't.
-- Chuck Bonner
Options Indexes -FollowSymLinks +Includes MultiViews
Diese Zeile macht keinen Sinn. Entweder Du legst direkt
eine Reihe von Optionen fest, indem Du kein +/- vor die
Woerter schreibst. Oder Du schaltest einzelne Optionen
mit +/- relativ zu den vorher gueltigen Optionen ein
oder aus. Aber so einen Mischmasch da gibt's nicht.
<cite>Normally, if multiple Options could apply to a directory, then the most specific one is taken complete; the options are not merged. However if all the options on the Options directive are preceded by a + or - symbol, the options are merged. Any options preceded by a + are added to the options currently in force, and any options preceded by a - are removed from the options currently in force.</cite>
hallo Calo,
Options Indexes -FollowSymLinks +Includes MultiViews
Diese Zeile macht keinen Sinn
Da hast du recht, wenn man es _ausschließlich_ auf das gepostete Beispiel bezieht. Es mag Konfigurationen geben, in denen so eine Zeile durchaus Sinn machen kann
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder?
Nein. Das gilt nur für Dateien, die in /usr/local/httpd/htdocs liegen.
Haeh? Wieso das denn?
Erschließt sich dir aus dem Gesamtkontext des Ausgangspostings, das leider durch die Art, in der es in den Antworten zitiert wurde, bissel sher "zerschnitten" worden ist
Grüße aus Berlin
Christoph S.
Moin!
Options Indexes -FollowSymLinks +Includes MultiViews
Diese Zeile macht keinen Sinn
Da hast du recht, wenn man es _ausschließlich_ auf das gepostete Beispiel bezieht. Es mag Konfigurationen geben, in denen so eine Zeile durchaus Sinn machen kann
In welchem Beispiel macht es denn Deiner Meinung nach Sinn?
Laut dem Zitat vom Linken Setzer ist die Zeile gleichbedeutend mit
Options Indexes FollowSymLinks Includes MultiViews
Nun gut, illegal ist der Mischmasch also nicht, aber sinnvoll ist er trotzdem nicht.
Es sollten doch nun für alle Dateien, die unterhalb von <directory /> liegen, das "allowOveride all" gelten, oder?
Nein. Das gilt nur für Dateien, die in /usr/local/httpd/htdocs liegen.
Haeh? Wieso das denn?
Erschließt sich dir aus dem Gesamtkontext des Ausgangspostings
Noe, tut's nicht. Der Heizer hat AllowOverride All im <Directory />-Container gesetzt, also gilt es fuer den gesamten Dateibaum, solange es nicht in einem Teilbaum wieder aufgehoben wird. Wurde es ja auch nicht, nur noch mal fuer /usr/local/httpd/htdocs wiederholt. Also was ist nun die explizite Begruendung fuer Deine Behauptung?
So long
--
Scientists say there are over 3,000 spiders for every human being on earth. Does anybody want mine? I certainly don't.
-- Chuck Bonner
Hi Heizer,
[alert][client 127.0.0.1] <pfad>/.htaccess : Options
not allowed here
Wo liegt mein Fehler?
Du versuchst, _innerhalb_ einer .htaccess-Datei die Direktive "Options" zu verwenden. Aber für den Gültigkeitsbereich _dieses_ Pfades ist offenbar _nicht_ "AllowOverride Options" gesetzt.
Vielleicht fehlt in Deiner httpd.conf die passende <Directory>-Direktive für diesen Baum, und Dein Verzeichnisbaum wird einfach von _keiner_ der bereits existierenden AllowOverride-Direktiven abgedeckt?
Viele Grüße
Michael
Dank an alle, die mir geholfen haben, ich habs geschafft