[英]Mapping Subdomains to Areas in ASP.Net Core 3
example.com
映射到任何区域。blog.example.com
映射到名为blog
的区域。实际上有很多关于这个主题的帖子,特别是将子域映射到区域。
来自 SO:
其他:
而且可能还有更多。
但是有一个大问题,在 ASP.Net Core 3 中他们改变了很多东西,其中之一是一般的路由,请参阅mircosoft 的 devblog 。 基本上他们改变了它,所以现在一切都应该是端点。
所有的类,例如MvcRouteHandler
和接口,例如IRouter
现在基本上已经过时了,至少从我的理解来看。 在 GitHub 存储库中搜索并挖掘了一段时间后,我找不到任何有用的东西。
SDK 3.0.100-preview6-012264
,但尝试尽快升级到SDK 3.0.100-preview7-012821
。您说所有请求都通过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 Server 上的区域路由。)
为了更新整个情况,随着 .Net Core 3 的发布,您现在可以使用RequireHost
方法。
这将类似于以下内容:
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "Home",
areaName: "Home",
pattern: "{controller=Home}/{action=Index}")
.RequireHost("localhost:5001", "sub.domain.com");
}
如果您删除模式参数中的Area
,如示例中所示,您可以完全实现。 它仍然有点hacky,但更干净。 请注意,您必须在所有端点上放置RequireHost
才能获得正确的默认路由匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.