[英]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.