diff --git a/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Models/ReverseProxyConfig.cs b/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Models/ReverseProxyConfig.cs index e269b2493f7..4f43a526852 100644 --- a/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Models/ReverseProxyConfig.cs +++ b/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Models/ReverseProxyConfig.cs @@ -148,17 +148,17 @@ static string GetDomainPatternString(string s) // return result; //} - public bool TryGetDomainConfig(string domain, [MaybeNullWhen(false)] out IDomainConfig value) + public bool TryGetDomainConfig(string url, [MaybeNullWhen(false)] out IDomainConfig value) { //value = domainConfigCache.GetOrAdd(domain.Host, GetDomainConfig); - var uri = new UriBuilder(domain).Uri; + var uri = new Uri(url); domainConfigCache.TryGetValue(uri.Host, out value); if (value != null) return true; - value = GetDomainConfig(domain); + value = GetDomainConfig(uri.Host); if (value == null) return false; diff --git a/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Services.Implementation/HttpServer/Middleware/HttpReverseProxyMiddleware.cs b/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Services.Implementation/HttpServer/Middleware/HttpReverseProxyMiddleware.cs index 5b1f8fd180d..c003d50d88d 100644 --- a/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Services.Implementation/HttpServer/Middleware/HttpReverseProxyMiddleware.cs +++ b/src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/Services.Implementation/HttpServer/Middleware/HttpReverseProxyMiddleware.cs @@ -93,7 +93,7 @@ var protocol when protocol.StartsWith("HTTP/3") => System.Net.HttpVersion.Versio } if (domainConfig.Items.Any_Nullable()) - domainConfig = RecursionMatchDomainConfig(url, domainConfig); + domainConfig = RecursionMatchDomainConfig(context.Request.Host.Host, domainConfig); if (domainConfig.Response == null) { @@ -158,16 +158,16 @@ var protocol when protocol.StartsWith("HTTP/3") => System.Net.HttpVersion.Versio /// /// 递归匹配子域名配置 /// - /// + /// /// /// - static IDomainConfig RecursionMatchDomainConfig(string url, IDomainConfig domainConfig) + static IDomainConfig RecursionMatchDomainConfig(string domain, IDomainConfig domainConfig) { if (domainConfig.Items.Any_Nullable()) { - var item = domainConfig.Items.FirstOrDefault(s => s.Key.IsMatch(url)).Value; + var item = domainConfig.Items.FirstOrDefault(s => s.Key.IsMatch(domain)).Value; if (item != null) - return RecursionMatchDomainConfig(url, item); + return RecursionMatchDomainConfig(domain, item); } return domainConfig; }