
Я уже некоторое время использую псевдоним mod_vhost, чтобы не сохранять настройки сервера по умолчанию для доменов, указывающих на моих хостинг-провайдеров.
Теперь я хотел бы также иметь возможность создания поддоменов на каждом из них (assets.domain.xyz, domain.xyz), но, похоже, я не могу включить оба этих домена.
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot "/www/%1.0.%-1.0/public"
ServerName %1.0.%-1.0
ServerAlias %1.0.%-1.0.*.xip.io
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
UseCanonicalName Off
VirtualDocumentRoot "/www/%2.0.%-1.0/assets"
ServerName assets.%2.0.%-1.0
ServerAlias assets.%2.0.%-1.0.*.xip.io
</VirtualHost>
Срабатывает тот, который первый, а второй пропускается.
Возможно ли это вообще? Я бы хотел избавить себя от необходимости дублировать это каждый раз, когда на меня указывает новый домен, и попытаться избежать написания каких-либо скриптов.
РЕДАКТИРОВАТЬ Я пытаюсь сделать так, чтобы у меня было два общих сопоставления, как показано ниже:
domain.dev => /www/domain.dev/public
assets.domain.dev => /www/domain/assets
Если проще просто использовать /public/assets, то меня это устроит, так как в любом случае это будет обслуживать только статический контент.
решение1
Единственный способ заставить это работать — добавить нединамический виртуальный хост для управления поддоменом.
<VirtualHost *:80>
ServerAlias %-2.0.%-1.0
VirtualDocumentRoot /www/%-2.0.%-1.0/public
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAlias assets.*
VirtualDocumentRoot /www/%-2.0.%-1.0/assets
<Directory />
Order deny,allow
Allow from all
AllowOverride None
SetHandler default-handler
php_flag engine Off
</Directory>
</VirtualHost>
На данный момент этого будет достаточно, по крайней мере, мне не придется повторять это слишком часто.