2012-03-18 198 views
2

我正在編寫一個適用於子域名的網絡應用程序。我還想添加自定義域名,以便用戶可以創建CNAME,以便其域名(hello.com)轉到其子域(123.hellothere.com)。Ruby on Rails自定義域名

我該如何去用Ruby on Rails來做這件事?

我已經有子域在我的應用程序上正常工作,我似乎有添加自定義域的問題。

我在與用戶博客有關的數據庫中有subdomaincustom_domain

我試過按照這個教程 - http://glacialis.postmodo.com/posts/cname-and-subdomain-routing-in-rails - 沒有運氣。

編輯

subdomaincustom_domain連接到博客模型。對於子域我用這個教程在RailsCasts

回答

3

我不知道該怎麼你有你的子域設置,但你應該有一些代碼,看起來像這樣的地方:

def current_account 
    Account.find_by_subdomain(request.subdomain) || Account.find_by_custom_domain(request.host) 
end 

此代碼只是一個證明的概念。您應該確保:a)防止人們竊取對方域(對custom_domain參數進行唯一性檢查); b)確保它們不會將域輸入到custom_domain字段中,以允許它們具有多個「本地」域。

編輯:如果在控制器上定義了current account方法,則還應確保使用@current_account ||=對其進行記憶以避免不必要的對數據庫的調用。

+2

如果您使用SSL,請記住一件事情,那就是您需要一個通常較貴的通配符證書。否則,由於子域不匹配,您將遇到客戶獲取無效證書的問題。 – kobaltz 2012-03-18 16:11:06