Почему мой Apache может обслуживать 200 файлов .php, содержащих завершающий слеш?

Почему мой Apache может обслуживать 200 файлов .php, содержащих завершающий слеш?

Запустил Apache 2.4.6 с vhosts и PHP 7.2.34 и только что обнаружил странную проблему.

Допустимый URL на моих виртуальных хостах, такой как , http://example.com/exists.phpкоторый также может обслуживаться с завершающим слешем; например http://example.com/exists.php/, .

Это происходит только в том случае, если обслуживаемый файл заканчивается на .php, а не на .html, .txt и т. д.

Нет правил mod_rewrite, влияющих на vhosts. Мой php.ini выглядит хорошо.

Есть идеи? Нормальное поведение?

решение1

Это нормальное поведение. Вы также можете добавить другие завершающие слеши или буквы, например:

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

он также используется некоторыми PHP-фреймворками для маршрутизации URL без mod_rewrite.

Связанный контент