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

StackOverflow https://stackoverflow.com/questions/1481052

  •  18-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

HTH Алекс

Другие советы

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

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

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

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

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

  • подстановочный знак DNS создает *.pastebin.com перейдите на один IP-адрес
  • По умолчанию, если Apache не может найти подходящий vhost для данного домена, первый определенный vhost выбирает его (есть другие способы добиться этого, это именно то, что я сделал).
  • Поэтому я гарантирую, что сайт pastebin является первым виртуальным хостом, и тогда программное обеспечение увидит запрошенное имя хоста и соответствующим образом настроит его
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top