.png)
Auf meinem lokalen Server verwende ich Apache 2.4.2. .htaccess
Die Datei meiner Website sieht wie folgt aus:
DirectoryIndex home.php
Options -Indexes
ErrorDocument 404 /404.php
Dies funktioniert gut, wenn beim Versuch, im Browser auf eine nicht vorhandene Datei zuzugreifen, eine HTTP 404-Seite angezeigt wird. Beim Zugriff auf vorhandene Dateien wird die Fehlerseite jedoch nicht angezeigt. Verwenden Sie dazu die folgende Syntax:
http://localhost/<FileName>.php/<AdditionalCharacters>
Wenn ich beispielsweise auf gehe home.php/xyz
, wird die home.php
Seite zwar geladen, aber alle relativen Links im HTML sind defekt. Ich habe kein home.php
Verzeichnis auf meinem Server! Was ist los?
Gibt es eine Anweisung oder Regel, die ich meiner .htaccess
Datei hinzufügen kann, um dieses Verhalten zu stoppen und stattdessen einen HTTP 404-Fehler auszulösen?
Antwort1
Dies ist eine Funktion namens „path_info“, die häufig verwendet wird, um ganze Websites aus einem einzigen CGI-Skript auszuführen (wenn keine besseren Alternativen wie mod_rewrite verfügbar sind).
Wenn die URL dazu führt, dass ein CGI-Skript als Verzeichnis behandelt wird, führt Apache das Skript normal aus, gibt ihm aber die zusätzlichen Pfadkomponenten in der PATH_INFO
Umgebungsvariable. Viele Wiki-Engines verwenden diese Funktion – Sie können beispielsweise aufhttps://wiki.archlinux.org/index.php/Beginners%27_Guide/VorbereitungHier entlang.
Dies kann gesteuert werden über diePfadinfo akzeptierenEinstellung.