From d7a6308cd34c6e8bea6fa066ee5e1c4a871b6a21 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Wed, 3 Aug 2016 11:44:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=9F=9F=E5=90=8D=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E7=9A=84URL=E7=94=9F=E6=88=90=E6=94=B9=E8=BF=9B=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=91=BD=E5=90=8D=E6=A0=87=E8=AF=86=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=87=AA=E5=8A=A8=E8=AF=86=E5=88=AB=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Route.php | 2 +- library/think/Url.php | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/library/think/Route.php b/library/think/Route.php index 2a05a716..7d517250 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -292,7 +292,7 @@ class Route } $vars = self::parseVar($rule); if (isset($name)) { - self::$name[$name] = [$rule, $vars]; + self::$name[$name] = [$rule, $vars, self::$domain]; } if ($group) { if ('*' != $type) { diff --git a/library/think/Url.php b/library/think/Url.php index 8b8eb3e3..2c2a4517 100644 --- a/library/think/Url.php +++ b/library/think/Url.php @@ -78,6 +78,9 @@ class Url if ($rule && $match = self::getRuleUrl($rule, $vars)) { // 匹配路由命名标识 快速生成 $url = $match; + if (!empty($rule[2])) { + $domain = $rule[2]; + } } elseif ($rule && isset($name)) { throw new \InvalidArgumentException('route name not exists:' . $name); } else { @@ -184,7 +187,7 @@ class Url if (0 === strpos($domain_prefix, '*.') && strpos($domain, ltrim($domain_prefix, '*.')) !== false) { foreach ($domains as $key => $rule) { $rule = is_array($rule) ? $rule[0] : $rule; - if (false === strpos($key, '*') && 0 === strpos($url, $rule)) { + if (is_string($rule) && false === strpos($key, '*') && 0 === strpos($url, $rule)) { $url = ltrim($url, $rule); $domain = $key; // 生成对应子域名