Как позволить клиентским сайтам субдомена использовать свой собственный домен

У меня есть приложение для направляющих, где клиенты подписываются и получают пользовательский сайт/URL субдомена как это:

  • customer1.myapp.com
  • customer2.myapp.com
  • customer3.myapp.com

Каковы шаги, которые я должен сделать, чтобы позволить клиенту использовать их собственное зарегистрированное доменное имя, таким образом, что их домен указывает на мое приложение?

Так, в примере выше, если "customer1" владеет "customer1.com" - как я могу установить свое приложение так, чтобы какие-либо запросы на "customer1.com" были отправлены на "customer1.myapp.com"? Кроме того, что мой клиент должен был бы сделать на своем конце?

Спасибо.

8
задан Jim Jones 15 July 2010 в 14:47
поделиться

1 ответ

Вашему клиенту потребуется настроить 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.

Когда вы создадите свое приложение, вам понадобится конфигурация виртуального хоста, который отвечает на все произвольные доменные имена. Это легко сделать, если это единственный размещенный сайт, так как это поведение по умолчанию. Если вы делаете это на виртуальном хостинге, вам, возможно, придется настраивать псевдоним для каждого клиентского домена, что может быть неудобно.

7
ответ дан 5 December 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: