【问题标题】:Mapping Subdomains to Areas in ASP.Net Core 3将子域映射到 ASP.Net Core 3 中的区域
【发布时间】:2019-07-23 22:14:17
【问题描述】:

我想要达到的目标

  • 如果可能,将我的正常域(例如 example.com)映射到任何区域。
  • 映射我的子域,例如blog.example.com 到名为 blog 的区域。

我发现了什么

其实有很多关于这个主题的帖子,尤其是映射子域到区域。

来自 SO:

其他:

而且可能还有更多。

问题

但是有一个大问题,在 ASP.Net Core 3 中他们改变了很多东西,其中之一就是一般的路由,请参阅mircosoft's devblog。基本上他们改变了它,所以现在一切都应该是端点。

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

附加信息

  • 我正在使用SDK 3.0.100-preview6-012264,但正在尝试升级到 尽快SDK 3.0.100-preview7-012821
  • 我正在使用一个保留代理 (nginx),它将请求传递给 ASP.Net Core 服务器。

【问题讨论】:

    标签: c# asp.net-core subdomain asp.net-mvc-areas asp.net-core-3.0


    【解决方案1】:

    为了对整个情况进行更新,随着 .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 才能获得正确的默认路由匹配。

    【讨论】:

    • 我收到“HTTP 错误 400。请求主机名无效。”。知道如何解决这个问题吗?
    • @Maddy89 如果需要帮助,您可能应该创建一个新问题并链接此答案。
    【解决方案2】:

    您说所有请求都通过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 上的区域路由。)

    【讨论】:

    • 浏览器中的 URL 是否会与子域保持一致,例如blog.example.com 或者它实际上会将 url 切换到 example.com/blog/$request_uri?
    • @Twenty:这应该取决于你如何配置 nginx。 iirc 它还可以重写响应 url
    • 好吧,如果它不默认重写,那将是完美的。在此先感谢,一旦我可以验证它的工作将标记它。
    • @Twenty 在这种情况下有两个选项,return directiverewrite directive on NGINX Rewrite Rules(我给出了返回指令示例)请检查它们。
    • 感谢您告诉我!
    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多