Apache2 mod_vhost_别名和VirtualDocumentRoot:如何添加倒数第二部分和最后一部分?

Apache2 mod_vhost_别名和VirtualDocumentRoot:如何添加倒数第二部分和最后一部分?,apache2,alias,virtualhost,mod-vhost-alias,Apache2,Alias,Virtualhost,Mod Vhost Alias,如何获取由域名最后两部分组成的目录名。还是用圆点 例如,我有一个域any.ms,我希望动态域foo.any.ms和域bar.any.ms也指向/var/www/dev/any.ms/public目录。或domainany.lorem.ipsum.ms指向目录/var/www/dev/ipsum.ms/public 目前我的ms.conf(不工作,apache无法启动): 服务器别名*.ms VirtualDocumentRoot/var/www/dev/%-2%.%-1/public UseC

如何获取由域名最后两部分组成的目录名。还是用圆点

例如,我有一个域any.ms,我希望动态域foo.any.ms和域bar.any.ms也指向/var/www/dev/any.ms/public目录。或domainany.lorem.ipsum.ms指向目录/var/www/dev/ipsum.ms/public

目前我的ms.conf(不工作,apache无法启动):


服务器别名*.ms
VirtualDocumentRoot/var/www/dev/%-2%.%-1/public
UseCononicalName关闭
选项如下符号链接
允许超越所有
命令允许,拒绝
通融
要求所有授权

我使用文档,但我不能插入点写/%-2.%-1//%-2%.%-1//%-2\.%-1/

,我刚刚找到了一个解决方案:

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

服务器别名*.ms
VirtualDocumentRoot/var/www/dev/%-2.0.%-1.0/public
UseCononicalName关闭
选项如下符号链接
允许超越所有
命令允许,拒绝
通融
要求所有授权

谢谢你,我也帮了忙。但是逃离这个点对我来说也很有效。例如
VirtualDocumentRoot”/var/www/dev/%1\.example.com“