Warum kann mein Apache 200 .php-Dateien bereitstellen, die einen abschließenden Schrägstrich enthalten?

Warum kann mein Apache 200 .php-Dateien bereitstellen, die einen abschließenden Schrägstrich enthalten?

Ich führe Apache 2.4.6 mit vhosts und PHP 7.2.34 aus und habe gerade ein seltsames Problem entdeckt.

Eine gültige URL auf meinen virtuellen Hosts, wie http://example.com/exists.phpsie auch mit einem abschließenden Schrägstrich bereitgestellt werden kann, zB http://example.com/exists.php/.

Dies ist nur der Fall, wenn die bereitgestellte Datei mit endet .php, nicht mit .html, .txt usw.

Es gibt keine Mod_Rewrite-Regeln, die die virtuellen Hosts betreffen. Meine php.ini sieht gut aus.

Irgendwelche Ideen? Normales Verhalten?

Antwort1

Das ist ein normales Verhalten. Sie können auch andere abschließende Schrägstriche oder Buchstaben hinzufügen, wie:

  • http://example.com/exists.php/path/to/
  • http://example.com/exists.php/otherpath

Es wird auch von einigen PHP-Frameworks für das URL-Routing ohne verwendet mod_rewrite.

verwandte Informationen