Kurze Situationsbeschreibung:
Ich benutze mod_rewrite, um Anfragen direkt an eine Bootstrap-Datei umzuleiten.
Dann versuche ich mittels PHP_SELF den aktuellen Pfad rauszuziehn.
Unter Windows lief es problemlos, unter Linux plötzlich aber net mehr. Der Aufruf http://domain.tld/path/to/app/index/index lieferte mir unter Windows das erwünschte /path/to/app, aber unter Linux abweichend /path/to/app/index.
Das is ja nu alles halb so wild, wobei ich ja ne grobe Ahnung habe, woran das liegt (Dateisystem-Unterschiede -.-), is aber auch eher egal. Wichtiger find ich, ob ich das Verhalten irgendwie kontrollieren kann, so das bei beiden System wirklich das gleiche rauskommt. Hab jetzt nen etwas umständliches Workaround
gebastelt,
was zwar seinen Dienst tut, ich bin mir aber unsicher, wie robust dies ist.
Ich nehm auch gerne völlig andere Vorschläge entgegen Inwiefern ist es eigentlich begründet, dass die beiden System mit der Funktion inkonsistent umgehen? Im deutschen Manual dazu jetzt nichts gefunden, werd mal das englische konsultieren.
Ich benutze mod_rewrite, um Anfragen direkt an eine Bootstrap-Datei umzuleiten.
Code:
RewriteEngine On RewriteRule .* index.php
PHP-Code:
$dir = dirname ($_SERVER['PHP_SELF']);
Das is ja nu alles halb so wild, wobei ich ja ne grobe Ahnung habe, woran das liegt (Dateisystem-Unterschiede -.-), is aber auch eher egal. Wichtiger find ich, ob ich das Verhalten irgendwie kontrollieren kann, so das bei beiden System wirklich das gleiche rauskommt. Hab jetzt nen etwas umständliches Workaround
PHP-Code:
$dir = dirname(str_ireplace($_SERVER['DOCUMENT_ROOT'],'',$_SERVER['SCRIPT_FILENAME']));
was zwar seinen Dienst tut, ich bin mir aber unsicher, wie robust dies ist.
Ich nehm auch gerne völlig andere Vorschläge entgegen Inwiefern ist es eigentlich begründet, dass die beiden System mit der Funktion inkonsistent umgehen? Im deutschen Manual dazu jetzt nichts gefunden, werd mal das englische konsultieren.
Kommentar