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
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如果需要帮助,您可能应该创建一个新问题并链接此答案。