2010-07-15 63 views
8

我有一個Rails應用程序,客戶註冊並獲得這樣的自定義子域網站/網址:如何讓客戶子域名網站使用自己的域名

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

什麼是我需要允許用戶使用自己的註冊域名,其域名指向我的應用程序的步驟?所以,在上面的例子中,如果「customer1」擁有「customer1.com」 - 我如何設置我的應用程序,以便對「customer1.com」的任何請求都發送到「customer1.myapp.com」?另外,我的客戶需要在他的最後做些什麼?

謝謝。

回答

6

您的客戶需要設置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」,無論主機相匹配設置了一個用戶模型領域。

當您設置您的應用程序時,您將需要一個虛擬主機配置來響應所有任意域名。如果它是唯一託管的網站,這很容易,因爲這是默認行爲。如果你在共享主機上這樣做,你可能需要爲每個客戶域專門配置一個別名,這可能是一個麻煩。

相關問題