Я наконец нашел конфигурацию, которая позволяет гибко создавать поддомен.
См. Документы Apache по mod_vhost_alias
Если ваш корневой dev-домен состоит из 3 частей, таких как dev.example.com, вы можете использовать %-4+
в качестве заполнителя для всего перед корневым доменом. Если он состоит из 4 частей, используйте %-5+
.
<VirtualHost *:80>
VirtualDocumentRoot "/var/www/%-4+/webroot"
ServerName www.dev.example.com
ServerAlias *.dev.example.com
php_admin_value auto_prepend_file /var/www/setdocroot.php
</VirtualHost>
Таким образом, вы можете создать каталог с именем /var/www/sub.domain/webroot
и получить к нему доступ с помощью URL sub.domain.dev.example.com
.
Строка php_admin_value auto_prepend_file /var/www/setdocroot.php
исправляет документацию в некоторых системах, таких как OSX 10.9 +
Вот содержание setdocroot.php
:
<?php
$_SERVER['DOCUMENT_ROOT'] = str_replace($_SERVER['SCRIPT_NAME'], '', $_SERVER['SCRIPT_FILENAME']);
?>