У меня есть сервер Apache с несколькими сайтами, использующими свои собственные домены. Для одного из этих сайтов я хочу иметь поддомены с подстановочными знаками.
Я установил записи домена для *.example.com
и он отлично работает.
С его помощью я могу настроить любой поддомен (например, abc.example.com
), чтобы указать на любой сайт, если я укажу имя поддомена.
Однако домен с подстановочными знаками (*.example.com
) попадает на сайт, настроенный в /etc/apache2/sites-available/default
вместо сайта, на котором ServerName *.example.com
.
Что я сделал не так?
* .example.com
<VirtualHost *:80>
ServerName *.example.com
ServerAlias abc.example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride all
Options -MultiViews
Allow from all
</Directory>
</VirtualHost>
дефолт
<VirtualHost *:80>
ServerName default.com
ServerAlias www.default.com
DocumentRoot /var/www/default/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/default/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Попробуйте переключить директивы ServerName / ServerAlias следующим образом:
ServerName abc.example.com
ServerAlias *.example.com
Насколько мне известно, подстановочные знаки работают только с директивой ServerAlias.