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

Скажем, у меня есть сайт, размещенный на example.com, теперь я хочу, чтобы каждый из моих зарегистрированных пользователей получил персональный субдомен, например, Алиса должна обычно получать alice.example.com > как ее поддомен. Хотя на самом деле alice.example.com получает данные с example.com/user/alice. Как реализовать этот механизм? Я вижу, что многие сайты работают таким образом. Интересно, как они это сделали. Это какая-то конфигурация сервера домена, конфигурация веб-сервера, переписывание .htaccess или просто какие-то хитрости в коде?

При его перенаправлении, как я экспериментировал, example.com и alice.example.com получат РАЗНЫЕ IP-адреса, если что, то как работает rewrite, так как при запросе alice.example.com, веб-браузер перенаправляет меня на совершенно другой сайт (IP-адрес).

Это смутило меня в течение некоторого времени, я просто не могу понять это сам, любая помощь будет очень признательна.

[править]: ОК, ПОДОЖДИТЕ! Боюсь, я сделал дубликат. Проверьте эту тему: Создавайте субдомены на лету с помощью .htaccess (PHP)< /а>


person Shawn    schedule 26.09.2009    source источник
comment
Не могу тебе помочь. Но я должен сказать это. Это хороший вопрос.   -  person Fábio Antunes    schedule 26.09.2009
comment
Небольшой совет: попробуйте задать этот вопрос на serverfault.com, ребята из сервера обычно там.   -  person Fábio Antunes    schedule 26.09.2009
comment
Мне. Неисправность сервера сейчас все еще своего рода небольшая деревня. Другая причина, по которой я задал этот вопрос здесь, заключалась в том, что я не был уверен, связано ли это с программированием или с системным администратором. Извините, что обнаружил, что кто-то уже спрашивал об этом. См. stackoverflow.com /вопросы/586129/   -  person Shawn    schedule 26.09.2009


Ответы (3)


В основном вам нужны две части:

1) Ваш сервер имен должен поддерживать подстановочные знаки. Таким образом, вы должны сопоставить *.mydomain.com с одним сервером. Это приведет к тому, что alice.mydomain.com и bob.mydomain.com перейдут на один и тот же сервер.

2) Затем программное обеспечение вашего сервера должно иметь возможность сопоставлять имя хоста (=alice.mydomain.com) с вашим приложением и передавать часть «alice» в качестве параметра.

В зависимости от того, какое программное обеспечение фреймворка/сервера вы используете, это должно быть довольно просто.

ХТН Алекс

person Alex Duggleby    schedule 26.09.2009
comment
Спасибо. Я на goDaddy, интересно, поддерживает ли их сервер имен подстановочные знаки. - person Shawn; 26.09.2009
comment
@Shawn: их сервер имен не поддерживает ничего, что могло бы вам помочь. Рассмотрите возможность использования сервера имен вашего хостинг-провайдера. - person P Shved; 26.09.2009
comment
Служба поддержки goDaddy предложила мне добавить запись A с подстановочным знаком, чтобы указать на IP-адрес моего основного домена. Будет ли это работать? - person Shawn; 27.09.2009

Это какая-то конфигурация сервера домена, конфигурация веб-сервера, переписывание .htaccess или просто какие-то хитрости в коде?

Вероятно, это комбинация нескольких методов.

Первым уровнем, вероятно, будет Подстановочная запись DNS на уровне DNS. так что любой поддомен может быть использован.

Затем конфигурация сервера или логика приложения используются для разделения контента на основе доступного поддомена. Это может быть директива Apache Alias, правило перезаписи или логика в коде вашего приложения.

person Marko    schedule 26.09.2009

Я могу рассказать, как я это сделал на pastebin.com

  • DNS с подстановочными знаками заставляет *.pastebin.com переходить на один IP-адрес
  • По умолчанию, если Apache не может найти соответствующий виртуальный хост для данного домена, его подбирает первый определенный виртуальный хост (есть и другие способы добиться этого, это как раз то, что я сделал).
  • Поэтому я гарантирую, что сайт pastebin является первым виртуальным хостом, а затем программное обеспечение видит запрошенное имя хоста и действует на нем соответствующим образом, чтобы настроить себя.
person Paul Dixon    schedule 26.09.2009
comment
Спасибо. Как поступили с www. и другие нет www. сабвуферы? Я полагаю, задница *.mydomain.com предполагает, что www.mydomain.com следует исключить при выполнении подстановочных знаков? - person Shawn; 26.09.2009