1. Настройка поддоменов на хостинге
Начнём с простого — настройка поддоменов на хостинге. С условием, если у вас правильный хостинг, то на нём, вполне вероятно, настроено автоматическое создание поддоменов. Любая созданная папка в папке htdocs автоматически превращается в поддомен. Названия доменов могут включать в себя маленькие латинские буквы, цифры и символ тире, названия доменов должны начинаться и заканчиваться латинской буквой или цифрой.
Пример:
У Вас есть домен domain.ru и Вы хотите создать поддомен test, то всё, что Вам нужно сделать, это создать папку test и закачать туда содержимое вашего сайта. После этого, Вы сразу можете посмотреть содержимое по адресу test.domain.ru
Вот так выглядит структура папок для сайта https://codeby.net/blogs/:
Т.е. то, что в папке www, это и есть доступный по адресу https://codeby.net/blogs/ сайт, который вы сейчас читаете.
Содержимое папки demowp1 доступно по адресу demowp1.codeby.net
Содержимое папки demowp2 — по адресу demowp2.codeby.net
Содержимое папки test по адресу test.codeby.net
Т.е. достаточно просто создавать папки и размещать там свои новые сайты — элегантно, а главное — просто. Если хотите также, переходите на правильный хостинг, переносите свои сайты сюда.
2. Поддомены и виртуальные хосты на локальном сервере (locahost'е).
Подразумевается, что вы ставили свой локальный сервер по этой инструкции. Если это не так, то пути в папках вам нужно поменять на свои.
Что мы получим? На локальном сервере мы можем настроить переадресацию любых запросов браузера на определённую папку сервера.
Допустим, мы хотим, чтобы при наборе в строке браузера открывался сайт, находящийся в каталоге C:Serverdatahtdocsmp, а при запросе http://student.work, открывался сайт, расположенный в каталоге C:Serverdatahtdocsstudent
(все названия условные, можете сделать переадресацию с mysite.ru, vk.com – в общем, чего угодно на свой локальный сервер).
Открываем файл C:WindowsSystem32Driversetchosts и добавляем туда такие строчки:
127.0.0.1 mp.loc 127.0.0.1 student.work
Сохраняем изменения и закрываем.
Переходим к файлу C:ServerbinApache24confhttpd.conf, открываем его текстовым редактором и в самый конец дописываем:
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "c:/Server/data/htdocs" ServerName locahost ServerAlias locahost ErrorLog "logs/localhost.log" CustomLog "logs/localhost.log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "c:/Server/data/htdocs/mp" ServerName mp.loc ServerAlias mp.loc ErrorLog "logs/localhost.log" CustomLog "logs/localhost.log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "c:/Server/data/htdocs/student" ServerName student.work ServerAlias student.work ErrorLog "logs/localhost.log" CustomLog "logs/localhost.log" common </VirtualHost>
Сохраняем, закрываем, перезапускаем компьютер.
Вуаля, теперь у нас работают такие адреса как http://mp.loc и http://student.work
Если вам хочется углубить свои знания, научиться создавать динамические виртуальные хосты, динамические поддомены и научиться многим другим интересным вещам, то отправляю вас к официальной документации.
Хотите узнать, как заполучить короткий и красивый адрес электронной почты (e-mail)? или как выбрать качественный хостинг? Всё это и многое другое на сайте codeby.net. Подписывайтесь на нашу e-mail рассылку (внизу страницы) или на ленту новостей и вы узнаете первым о новых статьях! Также вступайте в нашу официальную группу вконтакте — там вам очень рады!
Здравствуйте, Алексей.
Сделал все по вашей инструкции. Сервер, кстати, устанавливал тоже по вашей инструкции ( https://codeby.net/blogs/ustanovka-apache-php-mysql-phpmyadmin/ ). Если сделать все, как вы написали, то перестает работать http://localhost . То есть, не перестает, а просто показывается первый сайт из списка в hosts.
http://localhost = http://mp.loc
Получается, что напрямую в htdocs ничего разместить не получится?
Владимир, то, как Вы описали — это неправильное поведение сервера. Обратите внимание вот на эти строки
<VirtualHost *:80>
DocumentRoot "c:/Server/data/htdocs/mp"
ServerName mp.loc
ServerAlias mp.loc
ErrorLog "logs/localhost.log"
CustomLog "logs/localhost.log" common
</VirtualHost>
Поведение сервера в Вашем случае может возникнуть, если вместо выделенной жирным строчки написать
c:/Server/data/htdocs
Т.е. проверьте ещё раз конфигурационный файл. Я, когда пишу инструкции, сам проделываю все шаги и только убедившись, что всё работает правильно, делюсь этими инструкциями. Но Ваш комментарий посеял во мне зерно сомнения — со своей стороны я ещё раз перепроверю мануал.
UPD: Да, ошибка подтвердилась. Сейчас разберусь в чём дело и поправлю инструкцию. Владимир, огромное спасибо за наводку.
Инструкция поправлена!
В файл C:ServerbinApache24confhttpd.conf нужно добавить ещё один раздел:
<VirtualHost *:80>
DocumentRoot "c:/Server/data/htdocs"
ServerName locahost
ServerAlias locahost
ErrorLog "logs/localhost.log"
CustomLog "logs/localhost.log" common
</VirtualHost>
Вот. Теперь все работает, как надо.
Спасибо большое!