Я пытаюсь понять, как создавать поддомены, которые следуют за конкретным каталогом, поэтому, например, я перехожу к http://sub.mydomain.com
и это должно привести меня к корню /var/www/sub
. http://randomdir.mydomain.com
должен отвезти меня в /var/www/randomdir
.
Я следил за множеством ответов на эту тему, но ни один из них не помог. В основном то, что я сделал, - это запись подстановочного знака A *.mydomain.com
пару дней назад я добавил виртуальный хост в /etc/apache2/sites-enabled/mydomain.com.conf
который содержит это:
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/
</VirtualHost>
<VirtualHost *:80>
ServerName cake.mydomain.com
ServerAlias *.mydomain.com
DocumentRoot /var/www/%1
</VirtualHost>
Однако при перезапуске apache2 я получаю следующее:
Warning: DocumentRoot [/var/www/%1] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
... waiting Warning: DocumentRoot [/var/www/%1] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
Как мне создать поддомены с подстановочными знаками, которые указывают на каталог на основе префикса домена?
Измените свой DocumentRoot /var/www/%1
директива к VirtualDocumentRoot /var/www/%1
.
Этот документ, Динамически настраиваемый массовый виртуальный хостинг кажется, именно то, что вы пытаетесь сделать.
Области, охватывающие директиву VirtualDocumentRoot, более подробно описаны в mod_vhost_alias страница документации и может быть для вас особенно интересна.