2015-11-17 3 views
2

У меня есть конфигурацию Apache, которая является чем-то вроде этого:Можно ли заменить регулярное выражение или строку на Apache VirtualDocumentRoot?

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

Идея заключается в том, что она служит любой запрос поддомена из каталога с тем же именем. Например, docroot для http://beta-a.example.com становится /var/www/beta-a.

Это прекрасно работает.

Мой вопрос заключается в следующем: есть ли способ изменить извлеченную часть запроса на основе некоторой логики? В идеале регулярное выражение. Например, я хотел бы взять все запросы, как:

И удалить все после того, как и в том числе - так, что DOCROOT станет /var/www/beta. В принципе, я хотел бы найти способ иметь альтернативные имена хостов, которые будут обслуживаться одним и тем же доком. Я знаю правило:

% вкладыш NM (часть) название

Но это требует, чтобы я явно указать длину и, кажется, не допускать применения логики для извлеченной подстроки ,

ответ

0

Хотя не совсем то, что я ищу, я предложу обходное решение, которое я использую здесь. Я могу добавить дополнительный субдомен во вторую позицию, которая выполняет почти одно и то же. Таким образом, используя эти:

Все вышеперечисленное будет подан от DOCROOT /var/www/beta.