From 9843eaf243dabab3ca7ba745dafee5130edbeb2c Mon Sep 17 00:00:00 2001 From: thinkphp Date: Wed, 11 May 2016 11:53:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AA=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E7=9A=84=E8=A7=84=E5=88=99=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Route.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/library/think/Route.php b/library/think/Route.php index 17505a98..d57d1c10 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -254,6 +254,12 @@ class Route } } + // 注册未匹配路由规则后的处理 + public static function miss($route, $method = '*', $option = []) + { + self::register('__miss__', $route, $method, $option, []); + } + // 获取路由定义 public static function getRules($method = '') { @@ -385,6 +391,11 @@ class Route // 路由规则检测 if (!empty($rules)) { + if (isset($rules['__miss__'])) { + // 指定未匹配路由的处理 + $miss = $rules['__miss__']; + unset($rules['__miss__']); + } foreach ($rules as $rule => $val) { $option = $val['option']; $pattern = $val['pattern']; @@ -436,6 +447,12 @@ class Route } } } + if (isset($miss)) { + // 未匹配所有路由的路由规则处理 + if (self::checkOption($miss['option'], $url)) { + return self::parseRule('', $miss['route'], $url, []); + } + } } return false; }