末尾にスラッシュを含む .php ファイルを Apache が 200 で処理できるのはなぜですか?

末尾にスラッシュを含む .php ファイルを Apache が 200 で処理できるのはなぜですか?

vhosts と PHP 7.2.34 を使用して Apache 2.4.6 を実行したところ、奇妙な問題が見つかりました。

私の vhosts 上の有効な URL ( など)http://example.com/exists.phpも、末尾にスラッシュを付けて提供できます。例http://example.com/exists.php/: 。

これは、提供されるファイルが.php.html、.txt などではなくで終わる場合にのみ当てはまります。

vhosts に影響する mod_rewrite ルールはありません。php.ini は問題ないようです。

何かアイデアはありますか? 正常な動作ですか?

答え1

これは正常な動作です。次のように、末尾に他のスラッシュや文字を追加することもできます。

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

また、一部の PHP フレームワークでは、 なしで URL ルーティングを行うためにも使用されますmod_rewrite

関連情報