Ungültige Pfade mit .htaccess umleiten (zB "home.php/xyz")

Ungültige Pfade mit .htaccess umleiten (zB "home.php/xyz")

Auf meinem lokalen Server verwende ich Apache 2.4.2. .htaccessDie 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.phpSeite zwar geladen, aber alle relativen Links im HTML sind defekt. Ich habe kein home.phpVerzeichnis auf meinem Server! Was ist los?

Gibt es eine Anweisung oder Regel, die ich meiner .htaccessDatei 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_INFOUmgebungsvariable. 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.

verwandte Informationen