Chris©: Wie löst der Apache eine URL auf?

LG

Wenn ich die URL  http://example.org/script1.php habe, und nun an die URL noch etwas anhänge http://example.org/script1.php/paul, dann müsste das doch eigentlich eine ganz andere Ressource sein, die da angefordert wird.

Ist es aber nicht. Es wird tortzdem das Skript http://example.org/script1.php aufgerufen.

Kann man dem Apachen das irgendwie abgewöhnen?

Chris©

  1. Hallo nochmal,

    Habe noch eine Zusatzfrage:

    Was ist der Unterschied zwischen $_SERVER['PHP_SELF'] und $_SERVER['SCRIPT_NAME']?

    LG
    Chris©

    1. Moin!

      Habe noch eine Zusatzfrage:

      Was ist der Unterschied zwischen $_SERVER['PHP_SELF'] und $_SERVER['SCRIPT_NAME']?

      http://de.php.net/manual/en/reserved.variables.php#reserved.variables.server

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Hi,

        http://de.php.net/manual/en/reserved.variables.php#reserved.variables.server

        Außerdem noch anmerkenswert: PHP_SELF kann beliebige Daten vom User enthalten und ist somit nicht vertrauenswürdig.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
  2. Moin!

    http://example.org/script1.php

    Eine Datei "script1.php" im DOCUMENT_ROOT des Servers.

    http://example.org/script1.php/paul

    Eine Datei "paul" im Verzeichnis "script1.php", welches sich im DOCUMENT_ROOT befindet.

    Da ein Verzeichnis nicht existieren kann, wenn bereits eine Datei desselben Namens existiert, kann der Apache entscheiden, dass offenbar der Aufruf des Skripts gemeint ist - dem dann der gesamte Pfad zur weiteren Bearbeitung übergeben wird.

    dann müsste das doch eigentlich eine ganz andere Ressource sein, die da angefordert wird.

    Ist es aus Sicht der URL auch. Man kann durchaus auch provozieren, dass die zwei URLs unterschiedlich behandelt werden, z.B. durch mod_rewrite.

    Ist es aber nicht. Es wird tortzdem das Skript http://example.org/script1.php aufgerufen.

    Weil das vom Apachen standardmäßig so gemacht wird. Wenn du das Skript "paul" im Verzeichnis "script1.php" aufrufen willst, lösche die Datei "script1.php", erzeuge das Verzeichnis "script1.php" und platziere darin die Datei "paul".

    Kann man dem Apachen das irgendwie abgewöhnen?

    Was hättest du stattdessen als Reaktion?

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Selber moin, hier ist es schon dunkel...:-)

      Kann man dem Apachen das irgendwie abgewöhnen?

      Was hättest du stattdessen als Reaktion?

      Eine Antort, dass es die Ressource nicht gibt.
      Oder auch eine Umleitung auf die Fehlerseite.
      Aber nicht nur für den Spezialfall, sondern für alle Fälle, bei denen die vollständige URL nicht vorhanden ist.

      LG
      Chris©

  3. echo $begrüßung;

    Wenn ich die URL  http://example.org/script1.php habe, und nun an die URL noch etwas anhänge http://example.org/script1.php/paul, dann müsste das doch eigentlich eine ganz andere Ressource sein, die da angefordert wird.
    Kann man dem Apachen das irgendwie abgewöhnen?

    Das Feature nennt sich PathInfo und lässt sich mit AcceptPathInfo konfigurieren.

    echo "$verabschiedung $name";

    1. Hallo Dedlfix,

      Wenn ich die URL  http://example.org/script1.php habe, und nun an die URL noch etwas anhänge http://example.org/script1.php/paul, dann müsste das doch eigentlich eine ganz andere Ressource sein, die da angefordert wird.
      Kann man dem Apachen das irgendwie abgewöhnen?

      Das Feature nennt sich PathInfo und lässt sich mit AcceptPathInfo konfigurieren.

      Danke.
      Du hast mir den Abend gerettet.
      Das hatte ich vorhin noch "eben schnell" als Hausaufgabe bekommen.
      Daran hätte ich mich aber totgesucht.

      Nun muss ich das nur noch dokumentieren für morgen

      LG
      Chris©