Ich experimentiere gerade mit einem PHP Web-Proxy-Script, dass ich mir vor einer Weile mal geschrieben habe. Man hat ein Formular, gibt eine URL an und diese wird via Curl aufgerufen und der inhalt geparst, verändert und ausgegeben.
Mein Problem ist jetzt, dass das Script manchmal nicht unterscheiden kann, ob es gerade ein Verzeichnis oder ein File abruft. Bsp:
In dem Verzeichnis http://meinedomain.com/test liegt die datei index.html
Mit Curl kann ich diese Datei mit drei URLs abrufen:
http://meinedomain.com/test
http://meinedomain.com/test/
http://meinedomain.com/test/index.html
Das Problem dabei: Der Proxy inkludiert automatisch externe Dateien wie CSS und Bilder. Außerdem schreibt er alle Links auf die URL des Proxys um. Diese Pfade können aber nur richtig berechnet werden, wenn der Proxy weiß, in welchem Verzeichnis er sich befindet:
http://meinedomain.com/test -> Proxy denkt "test" ist ein file und sucht die benötigten Dateien relativ zu http://meinedomain.com/
http://meinedomain.com/test/ -> Proxy denkt "test" ist ein folder und sucht die benötigten Dateien relativ zu http://meinedomain.com/test/
http://meinedomain.com/test/index.html -> Proxy denkt "test" ist ein folder und sucht die benötigten Dateien relativ zu http://meinedomain.com/test/
Ich hoffe das macht mein Problem deutlich.
Zuerst dachte ich, dass ich das Problem lösen kann indem ich einefach einen / überall da anhänge, was nicht wie ein file ausschaut, weil es keinen Punkt im Namen hat. Aber es gibt dummerweise auch Verzeichnisse die einen Punkt enthalten und auch Files, die keinen Punkt enthalten.
Ein Gutes Beispiel dafür ist die Wikipedia:
http://de.wikipedia.org/wiki/Katze -> Liefert die Seite aus
http://de.wikipedia.org/wiki/Katze/ -> 404
Liefert evtl. CURL irgendeine Antwort darauf, was man eigentlich gerade aufgerufen hat?
VG Chris
Mein Problem ist jetzt, dass das Script manchmal nicht unterscheiden kann, ob es gerade ein Verzeichnis oder ein File abruft. Bsp:
In dem Verzeichnis http://meinedomain.com/test liegt die datei index.html
Mit Curl kann ich diese Datei mit drei URLs abrufen:
http://meinedomain.com/test
http://meinedomain.com/test/
http://meinedomain.com/test/index.html
Das Problem dabei: Der Proxy inkludiert automatisch externe Dateien wie CSS und Bilder. Außerdem schreibt er alle Links auf die URL des Proxys um. Diese Pfade können aber nur richtig berechnet werden, wenn der Proxy weiß, in welchem Verzeichnis er sich befindet:
http://meinedomain.com/test -> Proxy denkt "test" ist ein file und sucht die benötigten Dateien relativ zu http://meinedomain.com/
http://meinedomain.com/test/ -> Proxy denkt "test" ist ein folder und sucht die benötigten Dateien relativ zu http://meinedomain.com/test/
http://meinedomain.com/test/index.html -> Proxy denkt "test" ist ein folder und sucht die benötigten Dateien relativ zu http://meinedomain.com/test/
Ich hoffe das macht mein Problem deutlich.
Zuerst dachte ich, dass ich das Problem lösen kann indem ich einefach einen / überall da anhänge, was nicht wie ein file ausschaut, weil es keinen Punkt im Namen hat. Aber es gibt dummerweise auch Verzeichnisse die einen Punkt enthalten und auch Files, die keinen Punkt enthalten.
Ein Gutes Beispiel dafür ist die Wikipedia:
http://de.wikipedia.org/wiki/Katze -> Liefert die Seite aus
http://de.wikipedia.org/wiki/Katze/ -> 404
Liefert evtl. CURL irgendeine Antwort darauf, was man eigentlich gerade aufgerufen hat?
VG Chris
Kommentar