Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何路由NetCore3.1上的所有子域_C#_Asp.net Core_Asp.net Core 3.1 - Fatal编程技术网

C# 如何路由NetCore3.1上的所有子域

C# 如何路由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

当用户进入子域时,我想使用不同的控制器。我正在使用

它如何与任何域一起工作?例如,我使用domain.test只是为了开发,但在生产中我有另一个

Startup.cs

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”也匹配,则需要添加它


但是,您确实有第二条路线可以匹配所有内容。我怀疑您需要明确列出默认路由的有效主机。或者将您的控制器分成不同的区域,以确保它们只符合预期规则。

可能重复:我理解,谢谢,如果我不知道域会发生什么?我想路由所有子域上的任何域通配符子域似乎是支持的。请注意,您需要将域与通配符子域分开列出。