Ich arbeite gerade an einem Projekt, das aus mehreren Domains besteht, die alle denselben Webspace verwenden. Je nach Domain wird ein anderer Inhalt ausgegeben. Wenn die Datei nicht existiert, wird 404.php aufgerufen. So weit, so gut.
Jetzt kommt der etwas kompliziertere Teil. Nur weil die Datei nicht existiert und folglich 404.php aufgerufen wird, heißt das noch lange nicht, dass das dem Klienten auch so gesendet werden soll. Denn ich will auch einige „virtuelle“ Verzeichnisse erstellen.
So solle ich nicht gezwungen sein, eine andere Domain zu verwenden, um einen anderen Inhalt zurückzuliefen. Das Verwenden eines eigenen Unterverzeichnis sollte voll und ganz genügen.
Beispiel:
www.meine-seite1.de //Inhalt 1
www.meine-seite2.de //Inhalt 2
www.meine-seite2.de/test/ //Inhalt 3
Auch wenn alle URLs unterschiedlich sind, sollten sie zum selben Webspace verweisen, und zwar auf das Hauptverzeichnis. Das Verzeichnis 'test' existiert nicht wirklich, sondern es sollte auch ganz normal auf das Hauptverzeichnis verweisen und halt dementsprechend einen anderen Inhalt zurückgeben.
Folgende URLs sollten also dasselbe Bild zurückliefern:
www.meine-seite1.de/bild.jpg
www.meine-seite2.de/bild.jpg
www.meine-seite2.de/test/bild.jpg
Beides sollte auch auf dasselbe Skript verweisen:
www.meine-seite1.de/datei.php
www.meine-seite2.de/datei.php
www.meine-seite2.de/test/datei.php
Bei diesem Beispiel sollte datei.php nicht inkludiert werden, sondern völlig neu ausgewertet werden. Wenn also eine Variable oder Funktion in dieser Datei nicht existiert, aber in 404.php schon, sollte sie als nicht existierend aufgefasst werden (nur ein Beispiel).
Ob das Verzeichnis als virtuelles Verzeichnis anerkannt werden soll oder ob eine Fehlermeldung zurückgeliefert werden sollte, wird mit einer Datenbank ermittelt. Diese Abfragen habe ich eh schon gelöst.
Und jetzt zu meiner Frage:
Wie kann man PHP den Befehl erteilen, dass er jetzt diese und jene Datei an den Besucher zurückgeben soll. Also alle Dateien 1:1 liefern, und PHP-Skripte halt dann auch entsprechend auswerten, ohne dass dabei in 404.php definierte Funktionen oder Variablen etc. berücksichtigt werden.
Gibt es dafür eine eigene Funktion, oder muss man alles kompliziert selbst schreiben?
Ich hoffe, ich konnte mich klar und verständlich ausdrücken.
Jetzt kommt der etwas kompliziertere Teil. Nur weil die Datei nicht existiert und folglich 404.php aufgerufen wird, heißt das noch lange nicht, dass das dem Klienten auch so gesendet werden soll. Denn ich will auch einige „virtuelle“ Verzeichnisse erstellen.
So solle ich nicht gezwungen sein, eine andere Domain zu verwenden, um einen anderen Inhalt zurückzuliefen. Das Verwenden eines eigenen Unterverzeichnis sollte voll und ganz genügen.
Beispiel:
www.meine-seite1.de //Inhalt 1
www.meine-seite2.de //Inhalt 2
www.meine-seite2.de/test/ //Inhalt 3
Auch wenn alle URLs unterschiedlich sind, sollten sie zum selben Webspace verweisen, und zwar auf das Hauptverzeichnis. Das Verzeichnis 'test' existiert nicht wirklich, sondern es sollte auch ganz normal auf das Hauptverzeichnis verweisen und halt dementsprechend einen anderen Inhalt zurückgeben.
Folgende URLs sollten also dasselbe Bild zurückliefern:
www.meine-seite1.de/bild.jpg
www.meine-seite2.de/bild.jpg
www.meine-seite2.de/test/bild.jpg
Beides sollte auch auf dasselbe Skript verweisen:
www.meine-seite1.de/datei.php
www.meine-seite2.de/datei.php
www.meine-seite2.de/test/datei.php
Bei diesem Beispiel sollte datei.php nicht inkludiert werden, sondern völlig neu ausgewertet werden. Wenn also eine Variable oder Funktion in dieser Datei nicht existiert, aber in 404.php schon, sollte sie als nicht existierend aufgefasst werden (nur ein Beispiel).
Ob das Verzeichnis als virtuelles Verzeichnis anerkannt werden soll oder ob eine Fehlermeldung zurückgeliefert werden sollte, wird mit einer Datenbank ermittelt. Diese Abfragen habe ich eh schon gelöst.
Und jetzt zu meiner Frage:
Wie kann man PHP den Befehl erteilen, dass er jetzt diese und jene Datei an den Besucher zurückgeben soll. Also alle Dateien 1:1 liefern, und PHP-Skripte halt dann auch entsprechend auswerten, ohne dass dabei in 404.php definierte Funktionen oder Variablen etc. berücksichtigt werden.
Gibt es dafür eine eigene Funktion, oder muss man alles kompliziert selbst schreiben?
Ich hoffe, ich konnte mich klar und verständlich ausdrücken.
Kommentar