Если у вас много субдоменов или вы хотите создавать их автоматически, тогда имеет смысл создать одну универсальную конфигурацию, которая будет обслуживать все субдомены, направляя запросы посетителей в соответствующие каталоги.
В первую очередь, необходимо настроить DNS: добавить субдомен с именем ‘*’ (звездочка, без кавычек) и направить его на IP вашего веб-сервера. Немного подробнее об этом написано на странице: Apache: Автоматические субдомены.
Измените секцию server вашего сайта следующим образом:
server { listen 80; server_name example.com *.example.com; root /var/www/example.com/$subdomain; set $subdomain ""; if ($host ~* ^([a-z0-9-\.]+)\.example.com$) { set $subdomain $1; } if ($host ~* ^www.example.com$) { set $subdomain ""; } }
Не забудьте поменять example.com на имя вашего домена.
Эта конфигурация работает следующим образом:
Адрес URL | Путь на сервере |
---|---|
http://example.com/ | /var/www/example.com/ |
http://www.example.com/ | /var/www/example.com/ |
http://vasya.example.com/ | /var/www/example.com/vasya/ |
http://vasya.ivanov.example.com/ | /var/www/example.com/vasya.ivanov/ |
Если посетитель запросит субдомен, каталог которого не существует, ему будет выдана стандартная ошибка 404 (Файл не найден).