it-swarm.com.de

Verwendung einer Indexdatei in allen Verzeichnissen und Unterverzeichnissen

Ich habe eine index.php -Datei, die den Inhalt eines Verzeichnisses verarbeitet, in dem es sich befindet, und die Ausgabe an den Browser überträgt.

Das Problem ist, dass die Verzeichnisstruktur, die es bedienen soll, mit vielen Verzeichnissen und Unterverzeichnissen ziemlich komplex ist. Ich habe keine Lust, eine Kopie von index.php in jedes Unterverzeichnis zu kopieren.

Ich weiß, dass ich Symlinks auf Systemen verwenden kann, die sie unterstützen, aber es ist immer noch nicht die Aufgabe eines Menschen, die gesamte Hierarchie zu durchlaufen und Links zu der fraglichen Indexdatei zu platzieren, wenn keine andere vorhanden ist. Außerdem unterstützen nicht alle Systeme die symbolische Verknüpfung.

Gibt es eine Methode, um dem Webserver (Apache, nginx, ..) mitzuteilen, dass eine Indexdatei, die sich nicht in einem angeforderten Verzeichnis befindet, den angegebenen index.php verwenden soll, der sich an einer anderen Stelle befindet?

2
silverdr

Ich verstehe, was Sie fragen, kann aber nicht herausfinden, warum Sie eine index.php-Datei in jedem Verzeichnis benötigen würden (wenn typische Programmierpraktiken für PHP-Anwendungen befolgt werden).

Wenn Sie in jedem Unterverzeichnis auf die Datei root index.php verweisen müssen, ist mod_rewrite der einfachste Weg auf Serverebene. Wie Sie vielleicht fragen, ist dies keine Server-Agnostik. In diesem Artikel finden Sie jedoch Beispiele dafür, wie der Server immer auf die Datei index.php verweist: https://stackoverflow.com/questions/8595964/leite-all-traffic-nach-index-php-um (using-mod-rewrite

1
JMC

Gibt es eine Methode, um dem Webserver (Apache, nginx, ..) mitzuteilen, dass eine Indexdatei, die sich nicht in einem Verzeichnis unter dem Dokumentstamm befindet, den angegebenen index.php verwenden soll, der sich an einer anderen Stelle befindet?

Ja, unter Apache können Sie dies mit der Anweisung DirectoryIndex in Ihrer Apache-Konfiguration (oder .htaccess-Datei) steuern. Zum Beispiel:

DirectoryIndex index.php /index.php

Wenn Sie ein Dateisystemverzeichnis anfordern, wird dieses entweder index.php in diesem Verzeichnis bereitgestellt, sofern es vorhanden ist, andernfalls /index.php (index.php im Dokumentstamm).

Nginx scheint eine ähnliche Direktive zu haben, die einfach index heißt.
Referenz: https://serverfault.com/a/402949/49157

0
MrWhite