C# 如何路由NetCore3.1上的所有子域
当用户进入子域时,我想使用不同的控制器。我正在使用 它如何与任何域一起工作?例如,我使用domain.test只是为了开发,但在生产中我有另一个 Startup.csC# 如何路由NetCore3.1上的所有子域,c#,asp.net-core,asp.net-core-3.1,C#,Asp.net Core,Asp.net Core 3.1,当用户进入子域时,我想使用不同的控制器。我正在使用 它如何与任何域一起工作?例如,我使用domain.test只是为了开发,但在生产中我有另一个 Startup.cs app.UseEndpoints(端点=> { endpoints.MapControllerRoute( 名称:“默认”, 模式:“{controller=Subdomain}/{action=Index}/{id?}”).RequireHost(“*.domain.test”) endpoints.MapControllerR
app.UseEndpoints(端点=>
{
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller=Subdomain}/{action=Index}/{id?}”).RequireHost(“*.domain.test”)
endpoints.MapControllerRoute(
名称:“默认”,
模式:“{controller=Home}/{action=Index}/{id?}”);
});
RequireHost
几乎与在任何地方添加[Host(“…”)
属性相同,只是它们仅适用于该路由
主机规则的评估似乎发生在中。它应该将“*.domain.test”视为匹配所有子域,而不是域本身。如果您希望“domain.test”也匹配,则需要添加它
但是,您确实有第二条路线可以匹配所有内容。我怀疑您需要明确列出默认路由的有效主机。或者将您的控制器分成不同的区域,以确保它们只符合预期规则。可能重复:我理解,谢谢,如果我不知道域会发生什么?我想路由所有子域上的任何域通配符子域似乎是支持的。请注意,您需要将域与通配符子域分开列出。