【问题标题】:Can I use a regex or string replace with Apache VirtualDocumentRoot?我可以使用 Apache VirtualDocumentRoot 的正则表达式或字符串替换吗?
【发布时间】:2016-02-19 04:24:41
【问题描述】:

我有一个类似这样的 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 插入(部分)名称

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

【问题讨论】:

    标签: regex apache virtualhost


    【解决方案1】:

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

    以上所有内容都将从 docroot /var/www/beta 提供。

    【讨论】:

      猜你喜欢
      • 2020-06-30
      • 2015-02-27
      • 1970-01-01
      • 2018-07-13
      • 2015-11-30
      • 2021-11-29
      相关资源
      最近更新 更多