Xoops Users Group Japan - Re: urlencode されていないクエリが含まれる時の問題[10] で GIJOE さんに解説していただいたので、そのまとめ。というかほぼ転記。
やっぱり、先達はすごいなぁ。勉強になりました。 
ということで、PATH_INFO やクエリ文字列を含まない URI を取得する最も確実な方法は
$uri = $_SERVER['PHP_SELF'];
if (isset($_SERVER['PATH_INFO'])) {
$uri = preg_replace(
'#' . preg_quote($_SERVER['PATH_INFO']) . '$#',
'',
$uri
);
}ということになる。
(This host) = https://xoops.hypweb.net