【问题标题】:How can I redirect a subdomain to an 'area' in ASP.NET MVC?如何将子域重定向到 ASP.NET MVC 中的“区域”?
【发布时间】:2014-04-20 12:08:33
【问题描述】:

我们有以下三个外部可见的“端点”

  • api.domain.com
  • demo.domain.com
  • my.domain.com

我们正在使用 MVC5,理想情况下,我们希望将上述每个子域引导到它自己的区域(根据 MVC 术语)。

  • api.domain.com => 路由到 WebAPI(作为单独的“区域”?不确定)
  • demo.domain.com => 路由到“演示”区域
  • my.domain.com => 路由到“我的”区域
  • support.domain.com => 路由到“支持”区域(等等)

但是,我找不到配置它的方法。有谁知道我们如何设置上述内容?

最终目标是将以上所有内容作为一个单一的 MVC 站点,我们可以将其部署到 Azure 云服务。

【问题讨论】:

  • 您是否正在寻找服务器端重定向,例如让浏览器地址栏仍然显示 demo.domain.com,但让服务器在演示区目录之外工作;或浏览器地址栏显示 domain.com/demo/? 的客户端重定向

标签: asp.net asp.net-mvc azure subdomain asp.net-mvc-areas


【解决方案1】:

您是否研究过 URL 重写?如果您使用的是 IIS,那么您可以下载 url rewrite 模块,然后在 web.config 中您可以执行以下操作:

<rewrite>
   <rules>
      <rule name="Rewrite sub-domain to dir" enabled="true">
         <match url="^(.*)$" />
         <conditions>
            <add input="{HTTP_HOST}" pattern="^subdomain\.domain\.co\.uk$" />
         </conditions>
         <action type="Rewrite" url="subdomain/{R:1}" />
      </rule>
   </rules>
</rewrite>

来源:http://www.azurecurve.co.uk/2011/12/how-to-rewrite-a-sub-domain-to-a-directory-in-iis/

【讨论】:

    【解决方案2】:

    参考Mvc area routing?的答案

    /Admin/ 文件夹下区域的回答者示例是:

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional },
            new { controller = "Branch|AdminHome|User" },
            new[] { "MyApp.Areas.Admin.Controllers" }
        );
    }
    

    【讨论】:

    • 子域呢?
    猜你喜欢
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2012-07-10
    • 2012-04-01
    • 2015-06-11
    • 1970-01-01
    相关资源
    最近更新 更多