diff --git a/http/Provision/Config/Apache/SubdirVhost.php b/http/Provision/Config/Apache/SubdirVhost.php index bb7fe71b865d9db9c29ded5569044350ddba64d7..0420a1fde674cf9f355f35ab845e9a09464fa017 100644 --- a/http/Provision/Config/Apache/SubdirVhost.php +++ b/http/Provision/Config/Apache/SubdirVhost.php @@ -32,8 +32,15 @@ class Provision_Config_Apache_SubdirVhost extends Provision_Config_Http { foreach (d()->aliases as $alias) { if (strpos($alias, '/')) { $this->current_alias = $alias; - drush_log("Subdirectory alias `$alias` found. Creating vhost configuration file.", 'notice'); - parent::write(); + if (d($this->uri())) { + drush_log(dt('virtual host %vhost already exist for alias %alias, skipping', array('%vhost' => $this->uri(), '%alias' => $alias)), 'warning'); + // XXX: we need to verify that vhost here, or at least + // generate its configuration file. + } + else { + drush_log("Subdirectory alias `$alias` found. Creating vhost configuration file.", 'notice'); + parent::write(); + } } } } diff --git a/subdirs/subdirs.drush.inc b/subdirs/subdirs.drush.inc index 02d11784b7702f272d61f1aa17359b86098cd112..ee321ab0ee24764eea1e00a71085944087664760 100644 --- a/subdirs/subdirs.drush.inc +++ b/subdirs/subdirs.drush.inc @@ -117,3 +117,18 @@ function _subdirs_remove_symlinks() { } } } + +/** + * Inject our includes into existing virtual host + * + * Implementation of hook_provision_apache_vhost_config(). + * + * This is the case where example.com exists for the alias example.com/foo. + */ +function subdirs_provision_apache_vhost_config($uri, $data) { + $subdirs_path = $data['http_subdird_path'] . '/' . $uri . '/*.conf'; // wild guess + if (glob($subdirs_path)) { + return "# subdirectory sites for this virtual host +Include $subdirs_path"; + } +}