Apache: укажите динамические домены и поддомены VirtualHost в разных папках

Apache: укажите динамические домены и поддомены VirtualHost в разных папках

В настоящее время у меня есть 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.

Связанный контент