Il semble que PATH_INFO ne soit pas accessible (spécifié), dans tous les cas, tu ne peux peux ( doit ) pas faire confiance à ce genre de variable serveur, ou en tout cas crée toi une roue de secours,
Il est toujours bon de s'inspirer du Core de Cake pour ce genre de chose,
Pour ton problème, tu peux regarder par exemple dans Cake/Network/CakeRequest.php, la méthode _url() :
Le code adapté à ton cas :
function pathInfo() {
if (!empty($_SERVER'PATH_INFO'])) {
return $_SERVER'PATH_INFO'];
} elseif (isset($_SERVER'REQUEST_URI'])) {
$uri = $_SERVER'REQUEST_URI'];
} elseif (isset($_SERVER'PHP_SELF']) && isset($_SERVER'SCRIPT_NAME'])) {
$uri = str_replace($_SERVER'SCRIPT_NAME'], '', $_SERVER'PHP_SELF']);
} elseif (isset($_SERVER'HTTP_X_REWRITE_URL'])) {
$uri = $_SERVER'HTTP_X_REWRITE_URL'];
} elseif ($var = env('argv')) {
$uri = $var[0];
}
if (strpos($uri, '?') !== false) {
$uri = parse_url($uri, PHP_URL_PATH);
}
if (empty($uri) || $uri == '/' || $uri == '//') {
return '/';
}
return $uri;
}