如何让客户子域名网站使用自己的域名

如何让客户子域名网站使用自己的域名

问题描述:

我有一个Rails应用程序,客户注册并获得这样的自定义子域网站/网址:如何让客户子域名网站使用自己的域名

  • customer1.myapp.com
  • 的customer2。 myapp.com
  • customer3.myapp.com

什么是我需要允许用户使用自己的注册域名,其域名指向我的应用程序的步骤?所以,在上面的例子中,如果“customer1”拥有“customer1.com” - 我如何设置我的应用程序,以便对“customer1.com”的任何请求都发送到“customer1.myapp.com”?另外,我的客户需要在他的最后做些什么?

谢谢。

您的客户需要设置DNS以便其域名将其指向或部分指向您的地址。这可能很难协调,特别是如果您托管服务的服务器的地址可能会不时发生变化。将客户的子域路由到您的子域会更容易。

您还需要查找表,将客户的域映射到客户的帐户。这通常表示为这样的事情:

before_filter :load_customer_from_host 

def load_customer_from_host 
    # Strip "www." from host name to search only by domain. 
    hostname = request.host.sub(/^www\./, '') 

    @customer = Customer.find_by_host!(hostname) 
rescue ActiveRecord::RecordNotFound 
    render(:partial => 'customer_not_found', :layout => 'application', :status => :not_found) 
end 

它假定你有一个“主”字段的东西,如“customer1.myapp.com”或“customer1.com”,无论主机相匹配设置了一个用户模型领域。

当您设置您的应用程序时,您将需要一个虚拟主机配置来响应所有任意域名。如果它是唯一托管的网站,这很容易,因为这是默认行为。如果你在共享主机上这样做,你可能需要为每个客户域专门配置一个别名,这可能是一个麻烦。