# URL mit Pfadangabe hinter dem Dateinnamen umwandeln



## Nick H. (15. Jul 2005)

Moin

also folgendes Problem
(mein Server wiedermal...)
bin grad dabei Php einzubauen das zieht sich aber ziemlich in die Länge

angenommen ich hab folgende Url:

http://localhost/info.php

da ist das ganze ja ziemlich einfach
ich überprüf einfach mit endsWith obs mit einem bekannten Typ endet wnn nicht => Octet-Stream

bei der hier:

http://localhost/info.php?a=b

gehts auch noch einfach
ich unter teil das ganze in 2 Strings einen vor dem ? und einen danach
und dann gehts soweiter wie oben

aber jetzt kommt das Problem:

http://localhost/info.php/test?a=b

der Php-Cgi Interpreter will auch die Pfadangabe /test haben
aber wie unter teil ich den String jetzt am besten in
http://localhost/info.php
/test
und
a=b

ich kann ja nicht nach einem / suchen
damit ist ja alles voll
nach nem Punkt geht ja auch nicht
eine Url darf ja meines Wissens Punkte enthalten
die einzigste Idee die ich hab ist
auszulesen wo das Verzeichnis ist (muss ich ja eh ums dem Client zu schicken)
ab da dann den nächsten Punkt suchen
und von dem Punkt aus den nächsten /


*darf den ein Ordnernamen einen Punkt enthalten?
oder gibts vielleicht noch einen besseren Weg?*


----------



## byte (15. Jul 2005)

String url ist http://localhost/info.php/test?a=b

an http://localhost/info.php kommst du doch einfach mit url.substring(0, url.lastIndexOf(.php)) oder gibts noch andere endungen für php dateien als .php ? wenn ja, dann musste halt ne fallunterscheidung machen.

an /test kommst du durch url.substring(url.lastIndexOf(.php)+1, url.length) und dann nochmal prüfen, ob ein ? vorkommt, falls ja alles ab dem fragezeichen wegschmeissen.

analog kommste an das a=b


----------



## Nick H. (15. Jul 2005)

natürlich gibts mehr als nur php
html, gif, jpg usw.
hab mich wahrscheinlich ungünstig augedrückt
wie funktioniert das dann?


----------



## Nick H. (16. Jul 2005)

hab jetzt das Problem ein meiner Idee gemerkt:
ein Ordnername darf definitif einen Punkt enthalten

also muss ne ganz andere Möglichkeit her
das muss ja irgendwie gehen
Apache usw. können das ja auch...


----------



## Nick H. (27. Jul 2005)

ich hab mir das ganze nochmal durch den Kopf gehen lassen
das ist doch unmöglich!

angenommen ich hab die URL
http://localhost/info.php/test.php?a=b 

kann ich doch gar nicht wissen was gemeint ist
entweder will er info.php mit der Pfadangabe /test.php aufrufen
oder test.php im Ordner info.php

das geht doch gar nicht!
wie macht Apache das denn?
kann das Teil Gedanken lesen?


----------



## byte (27. Jul 2005)

du kannst doch prüfen, ob info.php bzw. test.php ein verzeichnis oder eine datei ist!? vielleicht mal über den string-tellerrand hinausschauen.


----------



## Nick H. (28. Jul 2005)

auf die Idee bin ich auch schon gekommen
nur wie find ich das herraus?


----------

