think\Url::parseUrl PHP Method

parseUrl() protected static method

直接解析URL地址
protected static parseUrl ( $url, $domain )
    protected static function parseUrl($url, $domain)
    {
        $request = Request::instance();
        if (0 === strpos($url, '/')) {
            // 直接作为路由地址解析
            $url = substr($url, 1);
        } elseif (false !== strpos($url, '\\')) {
            // 解析到类
            $url = ltrim(str_replace('\\', '/', $url), '/');
        } elseif (0 === strpos($url, '@')) {
            // 解析到控制器
            $url = substr($url, 1);
        } else {
            // 解析到 模块/控制器/操作
            $module = $request->module();
            $domains = Route::rules('domain');
            if (isset($domains[$domain]['[bind]'][0])) {
                $bindModule = $domains[$domain]['[bind]'][0];
                if ($bindModule && !in_array($bindModule[0], ['\\', '@'])) {
                    $module = '';
                }
            } else {
                $module = $module ? $module . '/' : '';
            }
            $controller = Loader::parseName($request->controller());
            if ('' == $url) {
                // 空字符串输出当前的 模块/控制器/操作
                $url = $module . $controller . '/' . $request->action();
            } else {
                $path = explode('/', $url);
                $action = Config::get('url_convert') ? strtolower(array_pop($path)) : array_pop($path);
                $controller = empty($path) ? $controller : (Config::get('url_convert') ? Loader::parseName(array_pop($path)) : array_pop($path));
                $module = empty($path) ? $module : array_pop($path) . '/';
                $url = $module . $controller . '/' . $action;
            }
        }
        return $url;
    }