protected function _url()
{
if (!empty($_SERVER['PATH_INFO'])) {
return $_SERVER['PATH_INFO'];
} elseif (isset($_SERVER['REQUEST_URI']) && strpos($_SERVER['REQUEST_URI'], '://') === false) {
$uri = $_SERVER['REQUEST_URI'];
} elseif (isset($_SERVER['REQUEST_URI'])) {
$qPosition = strpos($_SERVER['REQUEST_URI'], '?');
if ($qPosition !== false && strpos($_SERVER['REQUEST_URI'], '://') > $qPosition) {
$uri = $_SERVER['REQUEST_URI'];
} else {
$uri = substr($_SERVER['REQUEST_URI'], strlen(Configure::read('App.fullBaseUrl')));
}
} 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];
}
// CUSTOMIZE ADD 2013/11/25 ryuring
// サブフォルダに設置した場合URIを正常に取得できない為調整
// >>>
if (Configure::read('App.baseUrl')) {
$dir = dirname($this->base);
if (strpos($uri, $dir) === 0) {
//$uri = substr($uri, strlen($dir));
}
}
// <<<
// CUSTOMIZE MODIFY 2013/09/30 ryuring
// サブディレクトリ設置時のスマートURLオフに対応していなかったので調整
// >>>
//$base = $this->base;
// ---
$base = str_replace('/index.php', '', $this->base);
// <<<
if (strlen($base) > 0 && strpos($uri, $base) === 0) {
$uri = substr($uri, strlen($base));
}
if (strpos($uri, '?') !== false) {
list($uri) = explode('?', $uri, 2);
}
if (empty($uri) || $uri === '/' || $uri === '//' || $uri === '/index.php') {
$uri = '/';
}
$endsWithIndex = '/webroot/index.php';
$endsWithLength = strlen($endsWithIndex);
if (strlen($uri) >= $endsWithLength && substr($uri, -$endsWithLength) === $endsWithIndex) {
$uri = '/';
}
return $uri;
}