все внешние URL-адреса выглядят как «module / action? key1 = param1». Никакая настройка не возможна – но это быстро. Разница в том, что первый использует GET PHP, а второй использует PATH_INFO.
Я несколько раз видел PATH_INFO
, но до сих пор не знаю, что это такое. Что оно делает?
Фактически, PATH_INFO
связан с веб-сервером Apache, который обслуживает страницы PHP, а не сам по себе.
PATH_INFO
– это переменная окружения, установленная Apache, когда AcceptPathInfo
директива AcceptPathInfo
. Он будет содержать информацию о конце пути, которая следует за фактическим именем файла или несуществующим файлом в существующем каталоге, независимо от того, принят или отклонен запрос. Затем переменные окружения передаются в модуль Apache / CGI, который отвечает за отображение страницы.
Переменная доступна в PHP с использованием $_SERVER['PATH_INFO']
.
Например, предположим, что location /test/
указывает на каталог, который содержит только один файл here.html
. Затем запросы на /test/here.html/more
и /test/nothere.html/more
собираются /more
как PATH_INFO
.
Документация ядра Apache: директива
AcceptPathInfo
Поскольку переменная PATH_INFO является частью определения для CGI, вы также должны взглянуть туда;)