From e6d8a22c3b1822534b631e6ba12121389490dc4e Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 20 May 2016 21:44:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BRoute=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Route.php | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/library/think/Route.php b/library/think/Route.php index 2479cfd7..9d391d38 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -468,16 +468,10 @@ class Route if (!empty($val['routes'])) { // 分组路由 - if ($pos = strpos($rule, ':')) { - $str = substr($rule, 0, $pos); - $key1 = substr($rule, $pos) . '/'; - } elseif ($pos = strpos($rule, '<')) { - $str = substr($rule, 0, $pos); - $key1 = substr($rule, $pos) . '/'; + if ($pos = strpos($rule, ':') || $pos = strpos($rule, '<')) { + $str = substr($rule, 0, $pos); } else { - $pos = strlen($rule) + 1; - $key1 = ''; - $str = $rule; + $str = $rule; } if (0 !== strpos($url, $str)) { continue; @@ -487,9 +481,8 @@ class Route if (is_numeric($key)) { $key = array_shift($route); } - $url1 = substr($url, $pos); - $key = $key1 . $key; + $key = $rule . '/' . $key; // 检查规则路由 if (is_array($route)) { $option1 = $route[1]; @@ -501,7 +494,7 @@ class Route $route = $route[0]; $option = array_merge($option, $option1); } - $result = self::checkRule($key, $route, $url1, $pattern, $option); + $result = self::checkRule($key, $route, $url, $pattern, $option); if (false !== $result) { $request->route(['rule' => $key, 'route' => $route, 'pattern' => $pattern, 'option' => $option]); return $result;