Назад | Перейти на главную страницу

Поддомен Apache с подстановочными знаками в хвостовой каталог

Я пытаюсь понять, как создавать поддомены, которые следуют за конкретным каталогом, поэтому, например, я перехожу к 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 страница документации и может быть для вас особенно интересна.