Что происходит, когда я ставил косую черту (/) после URL-адреса .php?

У меня есть простой вопрос, но я не могу найти ответ нигде

У меня есть сайт «mysite.com». Я могу получить доступ к странице индекса, набрав «mysite.com» или «mysite.com/index.php». Это отлично работает … однако, когда я пытаюсь перейти на «mysite.com/index.php/», страница загружается, но не корректно. что именно происходит? Я бы подумал, что он должен вернуть ошибку 404, так как index.php будет рассматриваться как (не существующий) каталог (т. Е. Я думаю, что он попытается найти «mysite.com/index.php/index.php»). Это явно не так. Может кто-нибудь, пожалуйста, скажите мне, что именно происходит? Это также верно, когда вы ставите что-либо после косой черты, то есть «mysite.com/index.php/hello»

Благодарю.

Это связано с вашей экологической переменной Apache под названием PATH_INFO.

PATH_INFO

Фактически, PATH_INFO связан с веб-сервером Apache, который обслуживает страницы PHP, а не PHP.

PATH_INFO – это переменная окружения, установленная Apache, когда включена директива AcceptPathInfo. Он будет содержать информацию о конце пути, которая следует за фактическим именем файла (или несуществующим файлом в существующем каталоге), будет принята или отклонена. Затем переменные окружения передаются в модуль Apache / CGI, который отвечает за отображение страницы.

Переменная доступна в PHP с использованием $ _SERVER ['PATH_INFO'].

Например, предположим, что location / test / указывает на каталог, который содержит только один файл here.html. Затем запросы на /test/here.html/more и /test/nothere.html/more собираются / больше как PATH_INFO.

Этот ответ скопирован с Andrew Moore Ссылка на оригинальный ответ

Когда сервер замечает, что «каталог» в URL-адресе является скриптом, а не фактическим каталогом, он запускает скрипт. Остальные компоненты пути в URL-адресе помещаются в переменную PHP $_SERVER['PATH_INFO'] .