src/Route.php
public static function getRouteUrl($uri)
    {

        list($changeUrl, $params) = self::parseRouteUri($uri);

        // 获取后缀
        $suffix = pathinfo($changeUrl, PATHINFO_EXTENSION);
        if ($suffix) {
            // 删除后缀
            $changeUrl = str_replace('.' . $suffix, '', $changeUrl);
        }

        $isJump = false; //是否自动跳转

        // 原始地址+参数匹配 完全匹配
        $keyMD5 = md5($changeUrl . $params);
        if (isset(self::$regularUrl['changeUrl'][$keyMD5])) {
            $rule   = &self::$rule[self::$regularUrl['changeUrl'][$keyMD5]];
            $url    = $rule['url'];
            $isJump = $rule['jump'];

            self::$thisRule['rule'] = $rule; // 保存改写路由信息
            self::changeGetValue($rule['params']); // 保存GET参数
        }

        // 若完全匹配不存在 则不匹配参数只匹配路径  部分匹配
        if (!self::$thisRule['rule']) {
            $keyMD5 = md5($changeUrl);
            if (isset(self::$regularUrl['changeUrl'][$keyMD5])) {
                $rule   = &self::$rule[self::$regularUrl['changeUrl'][$keyMD5]];
                $url    = $rule['url'] . ($params ? '/s/' . $params : '');
                $isJump = $rule['jump'];

                self::$thisRule['rule'] = $rule; // 保存改写路由信息
                self::changeGetValue($rule['params']); // 保存GET参数

            }
        }

        //自动跳转Url
        if ($isJump) {
            die(header('Location:' . $url));
        }

        return isset($url) ? $url : $uri;
    }
public static function getRouteUrl($uri)
    {

        list($changeUrl, $params) = self::parseRouteUri($uri);

        // 获取后缀
        $suffix = pathinfo($changeUrl, PATHINFO_EXTENSION);
        if ($suffix) {
            // 删除后缀
            $changeUrl = str_replace('.' . $suffix, '', $changeUrl);
        }

        $isJump = false; //是否自动跳转

        // 原始地址+参数匹配 完全匹配
        $keyMD5 = md5($changeUrl . $params);
        if (isset(self::$regularUrl['changeUrl'][$keyMD5])) {
            $rule   = &self::$rule[self::$regularUrl['changeUrl'][$keyMD5]];
            $url    = $rule['url'];
            $isJump = $rule['jump'];

            self::$thisRule['rule'] = $rule; // 保存改写路由信息
            self::changeGetValue($rule['params']); // 保存GET参数
        }

        // 若完全匹配不存在 则不匹配参数只匹配路径  部分匹配
        if (!self::$thisRule['rule']) {
            $keyMD5 = md5($changeUrl);
            if (isset(self::$regularUrl['changeUrl'][$keyMD5])) {
                $rule   = &self::$rule[self::$regularUrl['changeUrl'][$keyMD5]];
                $url    = $rule['url'] . ($params ? '/s/' . $params : '');
                $isJump = $rule['jump'];

                self::$thisRule['rule'] = $rule; // 保存改写路由信息
                self::changeGetValue($rule['params']); // 保存GET参数

            }
        }

        //自动跳转Url
        if ($isJump) {
            die(header('Location:' . $url));
        }

        return isset($url) ? $url : $uri;
    }
获取实际路径