У меня есть приложение для направляющих, где клиенты подписываются и получают пользовательский сайт/URL субдомена как это:
Каковы шаги, которые я должен сделать, чтобы позволить клиенту использовать их собственное зарегистрированное доменное имя, таким образом, что их домен указывает на мое приложение?
Так, в примере выше, если "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
Это предполагает, что у вас есть модель Customer с полем 'host', заданным чем-то вроде 'customer1.myapp.com' или 'customer1.com', что соответствует полю host.
Когда вы создадите свое приложение, вам понадобится конфигурация виртуального хоста, который отвечает на все произвольные доменные имена. Это легко сделать, если это единственный размещенный сайт, так как это поведение по умолчанию. Если вы делаете это на виртуальном хостинге, вам, возможно, придется настраивать псевдоним для каждого клиентского домена, что может быть неудобно.