2015-05-11 2 views
1

Как получить имя каталога, состоящее из двух последних частей имени домена. Или использовать точку?mod_vhost_alias и VirtualDocumentRoot: как добавить предпоследнюю и последнюю часть?

Например, у меня есть домен any.ms, и я хотел бы, чтобы динамические домены foo.any.ms и домен bar.any.ms также указывающие на /вар/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> 
+0

Спасибо за это, помог мне тоже. Но побег над точкой также работает для меня. E. g. 'VirtualDocumentRoot '/var/www/dev/%1\.example.com" ' – alpham8