hotti: Frage zu Umelitung mit .htaccess

Beitrag lesen

hi,

Ok das hab ich jetzt nur halb verstanden oder Falsch.
Also das Problem ist ja , das der / da für ist um das Verzeichniss anzuzeigen oder so oder nicht?

Es gibt ein paar reservierte Zeichen in URI's, hier interessieren der Slash und das Fragezeichen.

Der "/" am Anfang kennzeichnet die http-Serverroot, weiter hinten dient ein "/" als Trenner für Verzeichnisse.

Beispiel:
http://example.org/          # wir sind auf der root   /
http://example.com/astro/    # wir sind im Verzeichnis /astro
http://example.com/cgi-bin/  # dito

Nun haben wir Scripts oder Ressourcen, die einen oder mehrere Parameter brauchen. Beispiel:

http://example.com/index.php

Zum Trennen der Parameter vom Locator gibt es das "?"

http://example.com/index.php?parameter=value;x=y
<------------- URL -------->|<- QUERY_STRING -->|
<---------------------- URI ---------------<|

Alle Parameter zusammen bilden den QUERY_STRING, den Teil nach dem "?". Im QUERY_STRING selbst darf es keinen "/" geben.

Jetzt soll "x=y" den QUERY_STRING ergeben, wir versuchen es so:

http://example.com/astro/index.php/x=y

Was passiert? Der Webserver quittiert sowas mit einem status: 404 not found.
Weil: "index.php" wird als Verzeichnis interpretiert und "x=y" als Ressource in diesem Verzeichnis ---> was es gar nicht gibt. Wie auch soll der Server wissen, wo bei mir die Ressource aufhört und der Parameter beginnt?

Machen wir es besser so:

http://example.com/astro/index.php?x=y

QUERY_STRING <= "x=y"

Wenn Du das verstanden hast, kannst Du dich an mode_rewrite machen.

Hotte

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.