Think/Route.php
public static function check()
    {
        $depr = C('URL_PATHINFO_DEPR');
        $regx = preg_replace('/\.'.__EXT__.'$/i', '', trim($_SERVER['PATH_INFO'], $depr));
        // 分隔符替换 确保路由定义使用统一的分隔符
        if ('/' != $depr) {
            $regx = str_replace($depr, '/', $regx);
        }
        // URL映射定义（静态路由）
        $maps = C('URL_MAP_RULES');
        if (isset($maps[$regx])) {
            $var = static::parseUrl($maps[$regx]);
            $_GET = array_merge($var, $_GET);

            return true;
        }
        // 动态路由处理
        $routes = C('URL_ROUTE_RULES');
        if (!empty($routes)) {
            foreach ($routes as $rule => $route) {
                if (is_numeric($rule)) {
                    // 支持 array('rule','adddress',...) 定义路由
                    $rule = array_shift($route);
                }
                if (is_array($route) && isset($route[2])) {
                    // 路由参数
                    $options = $route[2];
                    if (isset($options['ext']) && __EXT__ != $options['ext']) {
                        // URL后缀检测
                        continue;
                    }
                    if (isset($options['method']) && REQUEST_METHOD != strtoupper($options['method'])) {
                        // 请求类型检测
                        continue;
                    }
                    // 自定义检测
                    if (!empty($options['callback']) && is_callable($options['callback'])) {
                        if (false === call_user_func($options['callback'])) {
                            continue;
                        }
                    }
                }
                // 正则路由
                if (0 === strpos($rule, '/') && preg_match($rule, $regx, $matches)) {
                    if ($route instanceof Closure) {
                        // 执行闭包
                        $result = static::invokeRegx($route, $matches);

                        // 如果返回布尔值 则继续执行
                        return is_bool($result) ? $result : exit;
                    } else {
                        return static::parseRegex($matches, $route, $regx);
                    }
                } else {
                    // 规则路由
                    $len1 = substr_count($regx, '/');
                    $len2 = substr_count($rule, '/');
                    if ($len1 >= $len2 || strpos($rule, '[')) {
                        if ('$' == substr($rule, -1, 1)) {
                            // 完整匹配
                            if ($len1 != $len2) {
                                continue;
                            } else {
                                $rule = substr($rule, 0, -1);
                            }
                        }
                        $match = static::checkUrlMatch($regx, $rule);
                        if (false !== $match) {
                            if ($route instanceof Closure) {
                                // 执行闭包
                                $result = static::invokeRule($route, $match);

                                // 如果返回布尔值 则继续执行
                                return is_bool($result) ? $result : exit;
                            } else {
                                return static::parseRule($rule, $route, $regx);
                            }
                        }
                    }
                }
            }
        }

        return false;
    }
public static function check()
    {
        $depr = C('URL_PATHINFO_DEPR');
        $regx = preg_replace('/\.'.__EXT__.'$/i', '', trim($_SERVER['PATH_INFO'], $depr));
        // 分隔符替换 确保路由定义使用统一的分隔符
        if ('/' != $depr) {
            $regx = str_replace($depr, '/', $regx);
        }
        // URL映射定义（静态路由）
        $maps = C('URL_MAP_RULES');
        if (isset($maps[$regx])) {
            $var = static::parseUrl($maps[$regx]);
            $_GET = array_merge($var, $_GET);

            return true;
        }
        // 动态路由处理
        $routes = C('URL_ROUTE_RULES');
        if (!empty($routes)) {
            foreach ($routes as $rule => $route) {
                if (is_numeric($rule)) {
                    // 支持 array('rule','adddress',...) 定义路由
                    $rule = array_shift($route);
                }
                if (is_array($route) && isset($route[2])) {
                    // 路由参数
                    $options = $route[2];
                    if (isset($options['ext']) && __EXT__ != $options['ext']) {
                        // URL后缀检测
                        continue;
                    }
                    if (isset($options['method']) && REQUEST_METHOD != strtoupper($options['method'])) {
                        // 请求类型检测
                        continue;
                    }
                    // 自定义检测
                    if (!empty($options['callback']) && is_callable($options['callback'])) {
                        if (false === call_user_func($options['callback'])) {
                            continue;
                        }
                    }
                }
                // 正则路由
                if (0 === strpos($rule, '/') && preg_match($rule, $regx, $matches)) {
                    if ($route instanceof Closure) {
                        // 执行闭包
                        $result = static::invokeRegx($route, $matches);

                        // 如果返回布尔值 则继续执行
                        return is_bool($result) ? $result : exit;
                    } else {
                        return static::parseRegex($matches, $route, $regx);
                    }
                } else {
                    // 规则路由
                    $len1 = substr_count($regx, '/');
                    $len2 = substr_count($rule, '/');
                    if ($len1 >= $len2 || strpos($rule, '[')) {
                        if ('$' == substr($rule, -1, 1)) {
                            // 完整匹配
                            if ($len1 != $len2) {
                                continue;
                            } else {
                                $rule = substr($rule, 0, -1);
                            }
                        }
                        $match = static::checkUrlMatch($regx, $rule);
                        if (false !== $match) {
                            if ($route instanceof Closure) {
                                // 执行闭包
                                $result = static::invokeRule($route, $match);

                                // 如果返回布尔值 则继续执行
                                return is_bool($result) ? $result : exit;
                            } else {
                                return static::parseRule($rule, $route, $regx);
                            }
                        }
                    }
                }
            }
        }

        return false;
    }
路由检测
@return bool|void