Aufruf eines "Pfades" unterhalb einer PHP-Datei
Moin moin,
ich hoffe Ihr könnt mir bei folgender Problemstellung helfen:
Folgende Konstellation:
Mein Testsystem ist derzeit ein Windows 7 mit XAMPP in Version 3.2.2 . Allerdings verhält sich der Apache unter Linux genau so.
Documentroot ist "C:/xampp/htdocs". Hier gibt es jetzt ein Verzeichnis "Projekt1" und dort liegt liegt eine Datei "index.php".
Rufe ich die URL "127.0.0.1/Projekt1" oder auch "127.0.0.1/Projekt1/index.php" auf erhalte ich die erwartete Seite.
Wenn ich jetzt aber "127.0.0.1/Projekt1/index.php/irgendwas" aufrufe, erhalte ich den Inhalt der index.php aber ohne jegliches CSS.
Wieso liefert er mir hier nicht einen 404?
Wie behandelt der Apache diese URL? Hat hier jemand eine verständliche Erklärung zur funktionsweise?
Gruß in die Runde!
ich hoffe Ihr könnt mir bei folgender Problemstellung helfen:
Folgende Konstellation:
Mein Testsystem ist derzeit ein Windows 7 mit XAMPP in Version 3.2.2 . Allerdings verhält sich der Apache unter Linux genau so.
Documentroot ist "C:/xampp/htdocs". Hier gibt es jetzt ein Verzeichnis "Projekt1" und dort liegt liegt eine Datei "index.php".
Rufe ich die URL "127.0.0.1/Projekt1" oder auch "127.0.0.1/Projekt1/index.php" auf erhalte ich die erwartete Seite.
Wenn ich jetzt aber "127.0.0.1/Projekt1/index.php/irgendwas" aufrufe, erhalte ich den Inhalt der index.php aber ohne jegliches CSS.
Wieso liefert er mir hier nicht einen 404?
Wie behandelt der Apache diese URL? Hat hier jemand eine verständliche Erklärung zur funktionsweise?
Gruß in die Runde!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 296972
Url: https://administrator.de/contentid/296972
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo!
Das lässt sich unterbinden, wenn man die Base-Url im Head richtig anwendet
Beispiel: base-Elemente in HTML
Beispiel: base-Elemente in xHTML
Die Interpretation liegt hier nicht beim Apache, sondern beim Browser. Mit der Base-Url hat der Browser immer einen Anhaltspunkt für seine relativen Links.
Gruß
Eisbein
Das lässt sich unterbinden, wenn man die Base-Url im Head richtig anwendet
Beispiel: base-Elemente in HTML
<head>
<base href="http://wiki.selfhtml.org">
</head>
Beispiel: base-Elemente in xHTML
<head>
<base href="http://wiki.selfhtml.org" />
</head>
Die Interpretation liegt hier nicht beim Apache, sondern beim Browser. Mit der Base-Url hat der Browser immer einen Anhaltspunkt für seine relativen Links.
Gruß
Eisbein
Mahlzeit!
Was mir noch einfällt ist mod_rewrite.
Bei "127.0.0.1/Projekt1/index.php/irgendwas", wird "irgenwas" als Ordner angesehen, da keine Datei-Endung vorhanden ist.
Mit der RewriteEngine des Apache-Webservers ist es möglich die angeforderte URL anhand von Regeln "umzuschreiben". Basierend auf einem Parser für Reguläre Ausdrücke kann die angeforderte URL manipuliert werden.
Kann sein, dass für diesen Fall eine Standard-Regel existiert.
Gruß
Eisbein
Was mir noch einfällt ist mod_rewrite.
Bei "127.0.0.1/Projekt1/index.php/irgendwas", wird "irgenwas" als Ordner angesehen, da keine Datei-Endung vorhanden ist.
Mit der RewriteEngine des Apache-Webservers ist es möglich die angeforderte URL anhand von Regeln "umzuschreiben". Basierend auf einem Parser für Reguläre Ausdrücke kann die angeforderte URL manipuliert werden.
Kann sein, dass für diesen Fall eine Standard-Regel existiert.
Gruß
Eisbein