Der Martin: PHP und window.location.search

Beitrag lesen

Hallo Felix,

Stört dich der Slash?
mich nicht, aber vielleicht ist "/datei.php?Wert#Anker" etwas anderes als "/datei.php/?Wert#Anker" - oder warum sollte es synonymisch sein?

so genau kenne ich mich mit den Eingeweiden des Apachen auch nicht aus, aber ...
Sei http://example.org/script.php ein PHP-Script. Durch einen Request auf http://example.org/script.php wird es aufgerufen und ausgeführt. Das ist allgemein bekannt. Es wird aber auch ausgeführt, wenn man http://example.org/script.php/ oder http://example.org/script.php/forty-two abruft. Dabei wird alles, was nach dem Scriptnamen folgt, dem Script als $_SERVER['PATH_INFO'] zur Verfügung gestellt. Im ursprünglichen Fall also ein String, der nur den Slash enthält. Das ist überhaupt kein Problem.

Problematisch wird es, wenn anderswo im Projekt relative Pfadangaben verwendet werden, die der Client (Browser) vervollständigen muss. Wird beispielsweise eine CSS-Ressource "style.css" referenziert, dann ergeben sich da schon Unterschiede:

a) Wird das Script als http://example.org/script.php aufgerufen, vervollständigt der Browser zu http://example.org/style.css - passt.
b) Wird das Script als http://example.org/script.php/ aufgerufen, vervollständigt der Browser zu http://example.org/script.php/style.css - passt nicht!

Ergo: Alle relativ referenzierten Ressourcen werden nicht mehr gefunden, wenn ein deplazierter Slash angehängt wird.

So long,
 Martin

--
Wer keiner Fliege etwas zuleide tut, darf sich nicht über die Maden im Fleisch wundern.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(