Пользовательский поддомен с проблемой CNAME - PullRequest
2 голосов
/ 24 февраля 2011

Мне трудно понять, как использовать пользовательские домены с моим приложением. Это обычный случай наличия приложения, которое назначает пользователей для поддоменов, напр. user.theapp.com, и они хотят использовать CNAME, поэтому m.theirsite.com разрешает приложение. Похоже, что большинство служб, которые делают это, требуют, чтобы вы указали им, какой у вас пользовательский домен, и что просто добавление записи CNAME не работает. Шаги:

  1. Пользователь создает учетную запись.
  2. Мы сообщаем им, что они могут сделать запись CNAME на yourstuff.theapp.com (который является текущим местоположением).
  3. Это мое замешательство. После 1 и 2 мой настраиваемый домен все еще не работает ... поэтому, как только клиент сделает эту запись CNAME и предоставит нам "m.theirsite.com", какую особую магию мы сделаем с ним, чтобы сделать эти сайты "одинаковыми"?

Заранее спасибо.

1 Ответ

3 голосов
/ 17 марта 2011

Нашим решением было использовать PHP / MySQL для решения этой проблемы.Как обычно, вы должны иметь внешний домен / поддомен CNAME'd для вашего приложения, однако, как вы увидите, запись CNAME не обязательно должна соответствовать точному поддомену в приложении.Затем вы создадите область в своей базе данных, где пользователь может сказать вам, с какого внешнего сайта он получил CNAME.На этом этапе вы будете выполнять большую часть своей аутентификации на веб-сайте на основе узла HTTP, либо захватывая поддомен и используя его в качестве клиента, либо проверяя, находится ли узел HTTP в вашем списке CNAME, а затем ссылаясь на клиента оттуда.

Что CNAME делает, так это просто указывает на местоположение сервера, поэтому, если вы используете подстановочные знаки в конфигурации apache, foo.myapp.com разрешается в то же местоположение, что и bar.myapp.com, но вПриложение может использовать хост, чтобы вытащить поддомен и найти клиента ("foo" и "bar").При использовании CNAME, например, m.mywebsite.com --cnamed-> foo.myapp.com, приложение больше не имеет этой клиентской информации на HTTP-хосте, и, как мы упоминали, настройка подстановочного знака apache (* .myapp.com) просто выбрасывает поддомен .. поэтому из-за этого клиент должен сказать нам: «Я буду посещать m.mywebsite.com, поэтому сделайте это имя хоста действительным и для моей аутентификации».

...