2

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

例如,我有一个域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/

4

1 回答 1

3

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

如果要包括 . (点)字符在 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>
于 2015-05-11T09:41:29.263 回答