DirectoryIndex funktioniert in htaccess, aber nicht in Apache2 .conf-Dateien

DirectoryIndex funktioniert in htaccess, aber nicht in Apache2 .conf-Dateien

Meine Ubuntu-Installation muss index.php als Standarddatei verwenden.

Hinzugefügt

  DirectoryIndex index.php 

zu /etc/apache2/apache2.conf

Hinzugefügt

<Directory /path/to/website/root/>
    DirectoryIndex index.php 
</Directory>

zu /etc/apache2/sites-available/mysite.conf gefolgt von Aktivieren und Neustarten

sudo a2ensite mysite
sudo service apache2 restart

Was habe ich übersehen? Der Server lädt immer noch keine Standarddatei.

HINWEIS: Das Hinzufügen DirectoryIndex index.phpzu .htaccess hat den gewünschten Effekt, ich würde dies jedoch lieber über eine .conf-Datei tun.

Antwort1

Wo hast du den DirectoryIndex abgelegt? Ihn zur .htaccess hinzuzufügen ist gleichbedeutend mit dem Einfügen der Anweisung in:

<Directory /path/to/htaccess/file/>
DirectoryIndex index.php
</Directory>

Versuchen Sie also, eine Verzeichnisanweisung um den DirectoryIndex herum hinzuzufügen. Das ist zwar ein bisschen trickreich, aber es wird wahrscheinlich funktionieren. Wenn nicht, geben Sie uns mehr von Ihrer Konfiguration, beispielsweise die gesamte vhost-Konfiguration.

Antwort2

Heute hatten wir ein ähnliches Problem unter SLES 11 SP4 mit Apache 2.2 mit einer ziemlich standardmäßigen Apache-Konfiguration. Das Problem war, dass Apache eine vorhandene index.html-Datei ignorierte, wenn sie nicht explizit über die URL aufgerufen wurde. Beispiel: server.domain.tld/dir/

Wenn es jedoch mit einer expliziten Datei aufgerufen wird, wird der Inhalt bereitgestellt. z. B. server.domain.tld/dir/index.hmtl. Es gab also kein Problem mit den Dateisystemberechtigungen. Alle Dateien unter htdocs hatten ausreichende Berechtigungen für die Gruppe OTHERS. ABER alle htdocs-Dateien gehörten damals root.root. In diesem „Modus“ stellte Apache also index.html nicht bereit, wenn es nicht in der URL erwähnt wurde.

Sobald wir das htdocs-Verzeichnis und die Dateien rekursiv wieder auf den Besitzer „wwwrun.www“ geändert haben, der unter SLES (Suse Linux Enterprise Server) „Standard“ ist, ohne die Berechtigungen selbst zu ändern, begann Apache wieder damit, die Datei index.html bereitzustellen, wie normalerweise erwartet. Kein Neustart oder ähnliches erforderlich.

kann nicht sagen, ob das ein Fehler oder ein Feature ist. wollte Sie nur wissen lassen, was wir erlebt haben und was das Problem gelöst hat.

Sie sollten daher den Besitz Ihrer htdocs-Dateien überprüfen und sicherstellen, dass diese dem Dienstkonto und der Gruppe des Webservers gehören.

Antwort3

Versuchen Sie stattdessen, die Standortdirektive zu verwenden.

<Location /path/to/htaccess/file/>
    DirectoryIndex index.php
</Location>

verwandte Informationen