2010-02-14 43 views
27

todas las URL externas se ven como 'módulo/acción? Key1 = param1'. No es posible la personalización, pero es rápido. La diferencia es que el primero usa el GET de PHP, y el segundo usa PATH_INFO.¿Qué es exactamente PATH_INFO en PHP?

He visto PATH_INFO varias veces, pero todavía no sé exactamente qué es. ¿Qué hace?

Respuesta

34

En realidad, PATH_INFO está relacionado con el servidor web Apache que sirve páginas PHP y no PHP per se.

PATH_INFO es una variable de entorno establecida por Apache cuando el AcceptPathInfo directive está encendido. Contendrá información de ruta final que sigue a un nombre de archivo real o un archivo inexistente en un directorio existente, ya sea que la solicitud sea aceptada o rechazada. Las variables de entorno se pasan luego al módulo Apache/CGI a cargo de representar la página.

La variable es accesible en PHP usando $_SERVER['PATH_INFO'].

Por ejemplo, supongamos que la ubicación /test/ puntos a un directorio que contiene sólo el archivo único here.html. Entonces las solicitudes de /test/here.html/more y /test/nothere.html/more ambas recopilan /more como PATH_INFO.

Apache Core Documentation: AcceptPathInfo Directive

+8

Después de leer su respuesta, se podría inferir es una mala práctica confiar en PATH_INFO y no es así. PATH_INFO es parte de la definición de CGI (como SimonSinCity señaló). Es compatible con la mayoría del servidor web, no solo con Apache. –