Что такое PATH_INFO в PHP? - PullRequest
       32

Что такое PATH_INFO в PHP?

33 голосов
/ 14 февраля 2010

все внешние URL выглядят как 'module / action? Key1 = param1'. Нет возможности настройки - но это быстро. Разница в том, что первый использует PHP GET, а второй использует PATH_INFO.

Я видел PATH_INFO несколько раз, но все еще не знаю, что именно. Что это делает?

Ответы [ 2 ]

43 голосов
/ 14 февраля 2010

На самом деле PATH_INFO относится к веб-серверу Apache, обслуживающему страницы PHP, а не к PHP как таковому.

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

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

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

Базовая документация Apache: AcceptPathInfo Директива

19 голосов
/ 17 февраля 2012

Поскольку переменная PATH_INFO является частью определения для CGI, вы также должны взглянуть туда;)

https://tools.ietf.org/html/rfc3875#section-4.1.5

...