12/20/2006

如何在 Rails 底下設定 Subdomain

現在網路流行 Subdomain ,也就是固定網址。像是這個 blog 的網址 http://lightyror.blogspot.com/ ,裡面的 lightyror 就是我在 Blogger 裡面設定的。基本上,如何設定固定網址是需要 DNS Record 儲存到 DB 的技術,像是 MyDNS 之類的技術,這裡 Ruby on Rails 搭不上邊。但是如果設定好固定網址的 DNS Mapping, request 到了 Ruby on Rails 的 Application,Ruby on Rails 要怎麼判斷 request 的 subdomain呢?

最簡單的方式直接使用 request.subdomain 變數來判斷。 今天一個 request http://abc.def.example.com/ ,request.subdomain[0] 就是 abc ,request.subdomain[1] 就是 def。

如果要比較有結構的方式,可以將 site 的 mapping 放在 DB 裡面。RailsTip 有一篇 Building A Multi-Site Application,裡面介紹可以使用 DHH 寫的 Subdmain 的 plugin AccountLocation 來做到這件事情。安裝方式是
script/plugin install http://dev.rubyonrails.org/svn/rails/plugins/account_location/
然後在程式裡面使用
include AccountLocation
即可。

延伸閱讀


沒有留言: