mod_vhost_alias和VirtualDocumentRoot:如何添加倒数第二个和最后一个部分?

时间:2015-05-11 09:20:17

标签: apache2 alias virtualhost mod-vhost-alias

如何获取由域名的最后两部分组成的目录名称。或者使用点?

例如,我有一个域 any.ms ,我希望动态域 foo.any.ms 和域 bar.any.ms < / strong>还指向 /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 / < / strong>, /% - 2 \。% - 1 /

1 个答案:

答案 0 :(得分:2)

我刚刚找到了解决方案:

  

如果你想包括。 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>