Apache - автоматическое создание поддоменов
Добавлено: 17 янв 2023, 09:11
Имеется Apache на Linux и такая структура каталогов:
У меня изначально было настроено так и приходилось вручную всегда добавлять новый код:
Ну и файл hosts, который впоследствии таким и останется
Естественно, добавлять вручную код не очень удобно. Все запросы к поддоменам можно обрабатывать с помощью mod_vhost_alias, поэтому активируем его и правим наш VirtualHost:
Необходимо что бы сам домен хранился в вышеуказанном каталоге, а все поддомены хранились в каталоге домена, на уровне папки htdocs. А так же ОБЯЗАТЕЛЬНО! работало автоматическое добавление субдомена при создании новой папки. Как такое организовать?/var/www/домен/htdocs
У меня изначально было настроено так и приходилось вручную всегда добавлять новый код:
Изначальный код
Код: Выделить всё
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin site@yandex.ru
ServerName site.ru
ServerAlias www.site.ru
DocumentRoot /var/www/site.ru/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin site@yandex.ru
ServerName test.site.ru
ServerAlias www.test.site.ru
DocumentRoot /var/www/site.ru/test
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Код: Выделить всё
127.0.0.1 localhost
192.168.1.5 WS01
192.168.1.5 site.ru
192.168.1.5 *.site.ru
Окончательный и рабочий код
Код: Выделить всё
<VirtualHost *:80>
ServerAdmin site@yandex.ru
ServerName site.ru
ServerAlias www.site.ru
DocumentRoot /var/www/site.ru/htdocs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerAdmin site@yandex.ru
ServerName site.ru
ServerAlias *.site.ru
UseCanonicalName Off
VirtualDocumentRoot /var/www/site.ru/%-3
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>