Il cliente dovrà configurare DNS Perché il proprio dominio lo indichi, o parte di esso, al proprio indirizzo. Questo può essere difficile da coordinare, soprattutto se l'indirizzo del server su cui si sta ospitando il servizio può cambiare di volta in volta. È molto più semplice indirizzare il sottodominio di un cliente al tuo sottodominio.
Avrai anche bisogno di una tabella di ricerca che mappa il dominio di un cliente sull'account di un cliente. Questo è in genere espresso come qualcosa di simile:
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
che presume di avere un modello di cliente con un campo 'host' impostato con qualcosa come 'customer1.myapp.com' o 'customer1.com', qualunque sia l'host corrisponde campo.
Quando si imposta l'app, è necessario disporre di una configurazione di host virtuale che risponda a tutti i nomi di domini arbitrari. Questo è facile da fare se è l'unico sito ospitato, poiché questo è il comportamento predefinito. Se lo stai facendo su un hosting condiviso, potresti dover configurare un alias specifico per ogni dominio del cliente, il che può essere una seccatura.