如何在MVC中创建动态子域

本文关键字:动态 创建 MVC | 更新日期: 2023-09-27 18:04:10

我已经托管了我的网站www.sample.com,但我需要

  • -user1.sample.com
  • -user2.sample.com
  • -user3.sample.com

是可能的吗?

如何在MVC中创建动态子域

您实际上并没有"创建"新的子域名-相反,您设置了"通配符"条目,作为所有未解析名称的catch- call:

  1. 您需要一个通配符DNS记录,以便所有子域解析到相同的主机(IP)地址。并非所有的DNS提供商都提供此服务,因此您可能需要在必要时切换DNS服务提供商。
  2. 然后你需要配置你的web服务器来处理这些请求。你有两个选择:
    1. 使用端点绑定(这样你的IIS网站将处理所有请求到一个给定的IP地址和端口号)。在IIS 10.0之前,这是支持通配符或任意子域的唯一方法。这种方法需要为每个网站提供单独的IP地址。
    2. 使用合适的通配符域绑定。(IIS最终在10.0版本中添加了对此功能的支持)[0](IIS 10.0与Windows 10和Windows Server 2016一起发布)。这在IIS 8.5或更早版本中不支持。
  3. 您的应用程序代码需要检查HTTP Host:标头以确定被检查的内容。如果你正在使用ASP。. NET与路由(其中ASP。. NET MVC自动)你可以使用一个自定义的RouteBase子类,让你在路由中使用Host头值,按照这个例子:http://benjii.me/2015/02/subdomain-routing-in-asp-net-mvc/

请注意,步骤2的两个选项都需要客户服务器配置选项(ip地址绑定或运行Windows server 2016)。如果你使用的是共享主机提供商(HostGator, DreamHost等,甚至Azure网站),那么你将无法使用这些服务,因为他们通常不向客户提供这些服务——但无论如何,请询问他们是否可以支持你。