Когда вы автоматически создаете субдомены при регистрации пользователя, это создает новый веб-сайт или создает видимость веб-сайта? - PullRequest
2 голосов
/ 07 сентября 2010

Мне интересно, становятся ли поддомены, созданные при регистрации, веб-сайтами или они просто создают иллюзию того, что они являются сайтами вроде example.com/username?

Я пытаюсь создать что-то вроде user.domain.com и не могу найти что-нибудь полезное для этого?Есть ли способ сделать это так, чтобы я мог разрешить настройки для учетной записи для клиентов?

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

Ответы [ 4 ]

4 голосов
/ 07 сентября 2010

Субдомены обычно отображаются на определенный путь на веб-сервере. Например, Apache указывает эти пути в httpd.conf, они называются VirtualHost. Пример может выглядеть так:

<VirtualHost *:80>
ServerName subdomain.domain.org
DocumentRoot "apache2/htdocs/domain/"
</VirtualHost>

Эта запись отображает Uri subdomain.domain.org на путь apache2/htdocs/domain/. Теперь вы можете изменить или представить страницу по этому пути, и она не будет конфликтовать с другими сайтами.

2 голосов
/ 07 сентября 2010

Ваша DNS-запись будет нуждаться в подстановочном знаке для *.domain.com, что позволит другим узнать, что jack.domain.com ведет к действительному местоположению.

Как только это будет сделано, вашему .htaccess потребуется узнатьдля обработки *.domain.com запросов.Более подробную информацию об этом можно найти в правилах перенаправления поддоменов htaccess .

Суть в том, что кто-то идет на jack.domain.com, ваш сервер видит это и затем говорит: «Хорошо, мы передаем jack как часть строки запроса, чтобы каждая страница могла видеть, что мы работаем под jack.Затем в ваших сценариях вы просто используете эту информацию для ее отображения и отображения данных для jack.

Существует множество различных способов настройки, поэтому сложно сказать, как приспособиться к вашим потребностям.Но, надеюсь, этого достаточно, чтобы вы начали.Помните, что если вы тестируете на локальном хосте, файл localhost HOST не допускает использование подстановочных имен DNS, поэтому для тестирования вы должны вручную добавить каждый поддомен в этот файл хоста для тестирования.

2 голосов
/ 07 сентября 2010

Ответ довольно специфичен для того места, где вы регистрируетесь. Не существует внутренней связи между доменами, поддоменами и учетными записями хостинга - вы можете разместить где-нибудь example.com, а subdomain.example.com разместить совсем иначе, если хотите. Все дело в вашем хосте, их настройке и том, как вы / они настраиваете DNS.

Вы могли бы сделать это несколько легко, имея два сайта, один для example.com и один для * .example.com, а последний основывал корень документа на первой части имени. В Apache это так просто, как

VirtualDocumentRoot /path/to/site/subdomains/%1

Что касается браузера, то каждое имя представляет отдельный сайт, и при правильной настройке файлов cookie между сайтами будет небольшая утечка или ее не будет вообще. Единственная проблема - доступ по FTP, если вы решите предоставить это - каждому пользователю нужно будет настроить его поддиректорий в качестве домашнего каталога, а в идеале - chroot или что-то в этом роде, чтобы они не могли идти и смотреть на вещи других людей. , Очевидно, что это потребует некоторого сотрудничества с / от вашего веб-хостинга. (По крайней мере, чтобы использовать VirtualDocumentRoot, им нужно было бы запустить mod_vhost_alias. Существуют и другие способы, связанные с mod_rewrite, но в любом случае у вас будет такая же проблема с доступом по FTP.)

0 голосов
/ 07 сентября 2010

Другие ответили на основные вопросы вашего вопроса, но я хотел бы коснуться того, что вы называете «иллюзией» веб-сайта.

Существует несколько различных способов подачи данного заявления вдомен, поддомен или каталог, от статических файлов до одного файла, обрабатывающего каждый запрос независимо от того, какой путь или домен был запрошен.Ни один метод не является более или менее «реальным», чем любой другой.Единственным методом, который я бы назвал «иллюзией», был бы веб-сайт, маскируемый за другим веб-сайтом с использованием фреймов, что обычно является действительно плохой идеей.(Попробуйте сделать закладку на сайте, где URL-адрес не меняется при нажатии кнопки.)

...