我可以使用Apache VirtualDocumentRoot的正则表达式或字符串替换吗?

时间:2015-11-17 17:12:52

标签: regex apache virtualhost

我有一个Apache配置,如下所示:

<VirtualHost *:80>
    ServerAlias *.example.com
    VirtualDocumentRoot /var/www/%1
    <Directory /var/www/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

这个想法是它提供来自具有相同名称的目录的任何子域请求。例如,http://beta-a.example.com的docroot变为/var/www/beta-a

这很好用。

我的问题是:有没有办法根据某些逻辑修改请求的提取部分?理想情况下是正则表达式。例如,我想接受以下所有请求:

删除-之后的所有内容,以便docroot成为/var/www/beta。基本上,我想找到一些方法来获得从同一docroot提供的备用主机名。我知道规则:

  

%N.M插入(部分)名称

但这要求我指定一个显式长度,并且似乎不允许对提取的子字符串应用任何逻辑。

1 个答案:

答案 0 :(得分:0)

虽然不是我想要的,但我会提供一个我在这里使用的解决方法。我可以在第二个位置添加一个额外的子域,它完成了几乎相同的事情。所以使用这些:

以上所有内容均来自docroot /var/www/beta