diff --git a/library/think/Request.php b/library/think/Request.php index 5710c5cb..8a0dc80d 100644 --- a/library/think/Request.php +++ b/library/think/Request.php @@ -1342,14 +1342,18 @@ class Request /** * 当前请求的host * @access public + * @param bool $strict true 仅仅获取HOST * @return string */ - public function host() + public function host($strict = false) { if (isset($_SERVER['HTTP_X_REAL_HOST'])) { - return $_SERVER['HTTP_X_REAL_HOST']; + $host = $_SERVER['HTTP_X_REAL_HOST']; + } else { + $host = $this->server('HTTP_HOST'); } - return $this->server('HTTP_HOST'); + + return true === $strict ? strstr($host, ':', true) : $host; } /** diff --git a/library/think/Route.php b/library/think/Route.php index f940d28b..99ffa706 100644 --- a/library/think/Route.php +++ b/library/think/Route.php @@ -737,7 +737,7 @@ class Route $rules = self::$rules['domain']; // 开启子域名部署 支持二级和三级域名 if (!empty($rules)) { - $host = $request->host(); + $host = $request->host(true); if (isset($rules[$host])) { // 完整域名或者IP配置 $item = $rules[$host]; diff --git a/library/think/Url.php b/library/think/Url.php index 53a545f9..bb697192 100644 --- a/library/think/Url.php +++ b/library/think/Url.php @@ -239,7 +239,7 @@ class Url $rootDomain = Config::get('url_domain_root'); if (true === $domain) { // 自动判断域名 - $domain = Config::get('app_host') ?: $request->host(); + $domain = Config::get('app_host') ?: $request->host(true); $domains = Route::rules('domain'); if ($domains) {