В настоящее время у меня есть 2 VirtualHost:
<VirtualHost *:80>
ServerName *.*.comp1.office1.lan
VirtualDocumentRoot /var/www/%-4/%-5/
UseCanonicalName Off
<Directory /var/www/>
Options Indexes FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName *.comp1.office1.lan
VirtualDocumentRoot /var/www/%-4/
UseCanonicalName Off
<Directory /var/www/>
Options Indexes FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Такие домены какпапка.сайт.comp1.office1.lanresolvs правильно ( /var/www/site/folder/
). Но при запросесайт.комп1.офис1.ланЯ получаю ошибку 404.
И Apache регистрирует эту строку:
[time...] [error] [client my.ip.there] File does not exist: /var/www/site/_
Если я изменю порядок загрузки VirtualHosts (второй загружается раньше первого), тосайт.комп1.офис1.ланработает отлично, но проблема с ответом 404 переходит впапка.сайт.comp1.office1.lan.
решение1
Обычно вы не используете подстановочные знаки в записи ServerName для vhost, вместо этого вы обычно помещаете их в директиву ServerAlias. Попробуйте, например,
ServerName comp1.office.lan
ServerAlias *.*.comp1.office.lan
...
Возможно, вам придется настроить ServerName так, чтобы они все были разными и имена виртуальных хостов совпадали с ServerAlias.