diff --git a/app/Protocols/ClashMeta.php b/app/Protocols/ClashMeta.php index feda7d040..12e7bbceb 100644 --- a/app/Protocols/ClashMeta.php +++ b/app/Protocols/ClashMeta.php @@ -141,7 +141,7 @@ public function handle() return $group['proxies']; }); $config['proxy-groups'] = array_values($config['proxy-groups']); - $config = $this->buildRules($config); + $config = $this->buildRules($config,$user); $yaml = Yaml::dump($config, 2, 4, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE); $yaml = str_replace('$app_name', admin_setting('app_name', 'XBoard'), $yaml); @@ -155,10 +155,11 @@ public function handle() /** * Build the rules for Clash. */ - public function buildRules($config) + public function buildRules($config,$user) { // Force the current subscription domain to be a direct rule - $subsDomain = request()->header('Host'); + $subsURL = Helper::getSubscribeUrl($user['token']); + $subsDomain = parse_url($subsURL, PHP_URL_HOST); if ($subsDomain) { array_unshift($config['rules'], "DOMAIN,{$subsDomain},DIRECT"); } @@ -705,4 +706,4 @@ protected static function appendUtls(&$array, $protocol_settings) } } } -} \ No newline at end of file +}