CakeRequest::_url PHP Method

_url() protected method

Each of these server variables have the base path, and query strings stripped off
protected _url ( ) : string
return string URI The CakePHP request path that is being accessed.
    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;
    }