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

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

На данный момент у меня (для каждого домена) есть

<VirtualHost *:80> 

  ServerName exmaple.com
  ServerAlias *.example.com

  DirectoryIndex index.php index.html
  VirtualDocumentRoot /srv/www/example.com/public_html/%0

</VirtualHost>

Но я бы хотел избавиться от необходимости дублировать это для другого домена, сделав что-то вроде этого

<VirtualHost *:80> 

  ServerName *
  ServerAlias *

  DirectoryIndex index.php index.html
  VirtualDocumentRoot /srv/www/%2+/public_html/%0

</VirtualHost>

% 2 + - это все, кроме поддомена. Возможно ли это…

Если у вас есть только одноуровневые поддомены, это должно работать. Если вы хотите обслуживать все свои страницы через mod_vhost_aliasпросто возьми VirtualDocumentRoot линия из <VirtualHost> директивы и устраните все ваши <VirtualHost> директивы.

Подстановочный знак указывать не нужно ServerName. В любом случае для этого требуется полное доменное имя, поэтому вы все равно не сможете его использовать. Аналогично с ServerAlias, поскольку VirtualDocumentRoot заботится о поиске нужных мест для обслуживания страниц, в этом нет необходимости, поскольку Host: заголовок будет обрабатываться динамически.

Чтение документации на mod_vhost_alias и Динамически настраиваемый массовый виртуальный хостинг должно помочь устранить оставшуюся путаницу.