mod_vhost_alias и VirtualDocumentRoot: как добавить предпоследнюю и последнюю часть?
Как получить имя каталога, состоящее из двух последних частей имени домена. Или использовать точку?
Например, у меня есть домен any.ms, и мне бы хотелось, чтобы динамические домены foo.any.ms и домен bar.any.ms также указывали на каталог /var/www/dev/any.ms/public. Или домен any.lorem.ipsum.ms, указывающий на каталог /var/www/dev/ipsum.ms/public.
Мой ms.conf на данный момент (не работает, apache не запускается):
<VirtualHost *:80>
ServerAlias *.ms
VirtualDocumentRoot /var/www/dev/%-2%.%-1/public
UseCanonicalName Off
<Directory "/var/www/dev">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Я использую документацию http://httpd.apache.org/docs/2.4/mod/mod_vhost_alias.html но не могу вставить точки, записывающие /%-2.%-1/, /%-2%.%-1/, /%-2\.%-1/.
1 ответ
Я только что нашел решение:
Если вы хотите включить. (точка) в директиве VirtualDocumentRoot, но она падает с директивой%, вы можете обойти проблему следующим образом:
VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0
Рабочий раствор:
<VirtualHost *:80>
ServerAlias *.ms
VirtualDocumentRoot /var/www/dev/%-2.0.%-1.0/public
UseCanonicalName Off
<Directory "/var/www/dev">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>