Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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# 将子域映射到ASP.NETCore3中的区域 我想要达到的目标 尽可能将我的普通域(例如example.com映射到无区域) 将我的子域(例如blog.example.com映射到名为blog的区域) 我发现了什么_C#_Asp.net Core_Subdomain_Asp.net Mvc Areas_Asp.net Core 3.0 - Fatal编程技术网

C# 将子域映射到ASP.NETCore3中的区域 我想要达到的目标 尽可能将我的普通域(例如example.com映射到无区域) 将我的子域(例如blog.example.com映射到名为blog的区域) 我发现了什么

C# 将子域映射到ASP.NETCore3中的区域 我想要达到的目标 尽可能将我的普通域(例如example.com映射到无区域) 将我的子域(例如blog.example.com映射到名为blog的区域) 我发现了什么,c#,asp.net-core,subdomain,asp.net-mvc-areas,asp.net-core-3.0,C#,Asp.net Core,Subdomain,Asp.net Mvc Areas,Asp.net Core 3.0,实际上有很多关于这个主题的帖子,特别是将子域映射到区域 因此: 其他: 而且可能还有更多 问题 但是有一个大问题,在ASP.NETCore3中,他们改变了很多事情,其中之一就是路由,请参阅。基本上,他们改变了它,所以现在一切都应该是端点 至少从我的理解来看,所有的类,例如MvcRouteHandler和接口,例如IRouter现在基本上已经过时了。过了一段时间,我在GitHub的存储库中搜索,找不到任何有用的东西 补充资料 我正在使用sdk3.0.100-preview6-0

实际上有很多关于这个主题的帖子,特别是将子域映射到区域

因此:

其他:

而且可能还有更多

问题 但是有一个大问题,在ASP.NETCore3中,他们改变了很多事情,其中之一就是路由,请参阅。基本上,他们改变了它,所以现在一切都应该是端点

至少从我的理解来看,所有的类,例如
MvcRouteHandler
和接口,例如
IRouter
现在基本上已经过时了。过了一段时间,我在GitHub的存储库中搜索,找不到任何有用的东西

补充资料
  • 我正在使用
    sdk3.0.100-preview6-012264
    ,但正在尝试升级到
    SDK 3.0.100-preview7-012821
    尽快
  • 我使用的是一个保留代理(nginx),它将请求传递给ASP.Net核心服务器

您说过所有请求都会传递给
nginx
,但没有提到nginx重定向,您是否尝试使用
nginx
来实现这一点,只需使用
/etc/nginx/nginx.conf
将子域重定向到域即可

server {
   server_name sub.domain.co;
   location / {
   return 301 $scheme://domain.co/BlogSite$request_uri;
  }
}

BlogSite
是您在ASP.Net Core服务器上的区域路由。)

要更新整个情况,随着.Net Core 3的发布,您现在可以使用该方法

这将类似于以下内容:

app.UseEndpoints(端点=>
{
endpoints.MapAreaControllerRoute(
姓名:“家”,
域名:“家”,
模式:“{controller=Home}/{action=Index}”)
.RequireHost(“localhost:5001”,“sub.domain.com”);
}
如果您删除pattern参数中的
区域
,就像在示例中一样,您可以完全实现这一点。它仍然有点粗糙,但要干净得多。
请注意,您必须在所有端点上放置一个
RequireHost
,以获得适当的默认路由匹配。

浏览器中的URL是否会与子域保持一致,例如
blog.example.com
,或者它实际上会将URL切换到example.com/blog/$request\u uri?@two:这应该取决于您如何配置nginx.iirc它还可以重写响应urlsWell如果它不按照默认值重写它将是完美的。提前感谢,我会在我能验证它是否工作时立即标记它。@20在这种情况下有两个选项,
返回指令
重写指令
关于
NGINX重写规则
(我给出了返回指令示例)请检查它们。感谢您让我知道!我收到“HTTP错误400。请求主机名无效”。您知道如何解决此问题吗?@Maddy89如果需要帮助,您可能应该创建一个新问题并链接此答案。