diff --git platform/provision_drupal.drush.inc platform/provision_drupal.drush.inc index e8097fa..c6efe57 100644 --- platform/provision_drupal.drush.inc +++ platform/provision_drupal.drush.inc @@ -357,15 +357,17 @@ function _provision_drupal_maintain_aliases($url) { // First we delete all the old aliases _provision_drupal_delete_aliases(drush_get_option('aliases', array(), 'site')); - $aliases = drush_get_option('aliases'); - if (!is_array($aliases)) { - $aliases = explode(",", $aliases); - } - foreach($aliases as $alias) { - if (trim($alias)) { - provision_path("symlink", $url, drush_get_option('docroot_path') . "/sites/" . $alias, - dt("Created symlink for alias @alias", array("@alias" => $alias)), - dt("Could not create symlink for alias @alias", array("@alias" => $alias))); + if (!drush_get_option('redirection')) { + $aliases = drush_get_option('aliases'); + if (!is_array($aliases)) { + $aliases = explode(",", $aliases); + } + foreach($aliases as $alias) { + if (trim($alias)) { + provision_path("symlink", $url, drush_get_option('docroot_path') . "/sites/" . $alias, + dt("Created symlink for alias @alias", array("@alias" => $alias)), + dt("Could not create symlink for alias @alias", array("@alias" => $alias))); + } } } } diff --git platform/verify.provision.inc platform/verify.provision.inc index 7a04453..b1eb732 100644 --- platform/verify.provision.inc +++ platform/verify.provision.inc @@ -49,6 +49,7 @@ function drush_provision_drupal_post_provision_verify($url = NULL) { if (PROVISION_CONTEXT_SITE) { _provision_drupal_rebuild_caches($url); drush_set_option('aliases', drush_get_option('aliases'), 'site'); + drush_set_option('redirection', drush_get_option('redirection'), 'site'); drush_set_option('installed', TRUE, 'site'); } } diff --git web_server/disable.provision.inc web_server/disable.provision.inc index bc13a8c..5c66e80 100644 --- web_server/disable.provision.inc +++ web_server/disable.provision.inc @@ -5,7 +5,7 @@ */ function drush_provision_apache_provision_disable($url = NULL) { drush_set_option('redirect_url', drush_get_option('web_disable_url')); - _provision_apache_create_vhost_config($url, _provision_apache_redirect_template()); + _provision_apache_create_vhost_config($url, _provision_apache_disabled_template()); _provision_apache_restart_apache(); } diff --git web_server/provision_apache.drush.inc web_server/provision_apache.drush.inc index 0053546..8c4b854 100644 --- web_server/provision_apache.drush.inc +++ web_server/provision_apache.drush.inc @@ -58,13 +58,20 @@ function _provision_apache_default_template() { } /** - * The default template for disabled sites + * The template for site redirection */ function _provision_apache_redirect_template() { return file_get_contents(dirname(__FILE__) ."/provision_apache_vhost_redirect.tpl.php"); } /** + * The default template for disabled sites + */ +function _provision_apache_disabled_template() { + return file_get_contents(dirname(__FILE__) ."/provision_apache_vhost_disabled.tpl.php"); +} + +/** * The template for platform configuration settings */ function _provision_apache_platform_template() { @@ -86,6 +93,9 @@ function _provision_apache_create_vhost_config($url, $template = NULL) { if (is_null($template)) { $template = _provision_apache_default_template(); } + if ($options['redirection']) { + $template .= _provision_apache_redirect_template(); + } if (!is_array($options['aliases'])) { $options['aliases'] = explode(",", $options['aliases']); } diff --git web_server/provision_apache_vhost_disabled.tpl.php web_server/provision_apache_vhost_disabled.tpl.php new file mode 100644 index 0000000..d81a433 --- /dev/null +++ web_server/provision_apache_vhost_disabled.tpl.php @@ -0,0 +1,20 @@ + + + ServerAdmin + + DocumentRoot + + ServerName + + RewriteEngine on + # the ? at the end is to remove any query string in the original url + RewriteRule ^(.*)$ ? + + + ServerAlias + + + diff --git web_server/provision_apache_vhost_redirect.tpl.php web_server/provision_apache_vhost_redirect.tpl.php index d81a433..000e066 100644 --- web_server/provision_apache_vhost_redirect.tpl.php +++ web_server/provision_apache_vhost_redirect.tpl.php @@ -4,11 +4,7 @@ DocumentRoot - ServerName - - RewriteEngine on - # the ? at the end is to remove any query string in the original url - RewriteRule ^(.*)$ ? + ServerName @@ -17,4 +13,5 @@ endforeach; endif; ?> + RedirectMatch permanent ^(.*) http://$1 diff --git web_server/restore.provision.inc web_server/restore.provision.inc index 71209c6..3540f4f 100644 --- web_server/restore.provision.inc +++ web_server/restore.provision.inc @@ -5,7 +5,7 @@ */ function drush_provision_apache_pre_provision_restore($url) { drush_set_option('redirect_url', drush_get_option('web_maintenance_url')); - _provision_apache_create_vhost_config($url, _provision_apache_redirect_template()); + _provision_apache_create_vhost_config($url, _provision_apache_disabled_template()); _provision_apache_restart_apache(); }