Till Brehm
2016-01-02 f652c5901e8230fd53bcd5f57ccd6ae69dc2b2ca
server/plugins-available/apache2_plugin.inc.php
@@ -1091,12 +1091,16 @@
      // Make sure we only have Unix linebreaks
      $vhost_data['apache_directives'] = str_replace("\r\n", "\n", $vhost_data['apache_directives']);
      $vhost_data['apache_directives'] = str_replace("\r", "\n", $vhost_data['apache_directives']);
      $trans = array('{DOCROOT}' => $vhost_data['web_document_root_www']);
      $trans = array(
         '{DOCROOT}' => $vhost_data['web_document_root_www'],
         '{DOCROOT_CLIENT}' => $vhost_data['web_document_root']
      );
      $vhost_data['apache_directives'] = strtr($vhost_data['apache_directives'], $trans);
      // Check if a SSL cert exists
      $ssl_dir = $data['new']['document_root'].'/ssl';
      $domain = $data['new']['ssl_domain'];
      if(!$domain) $domain = $data['new']['domain'];
      $key_file = $ssl_dir.'/'.$domain.'.key';
      $crt_file = $ssl_dir.'/'.$domain.'.crt';
      $bundle_file = $ssl_dir.'/'.$domain.'.bundle';
@@ -1152,7 +1156,7 @@
               $app->system->chmod($webroot . "/.well-known/acme-challenge", "g+s");
               
               if(file_exists("/root/.local/share/letsencrypt/bin/letsencrypt")) {
                  $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator=webroot --server=https://acme-v01.api.letsencrypt.org/directory --rsa-key-size=4096 --email postmaster@$domain --domains $lddomain --webroot-path " . escapeshellarg($webroot));
                  $this->_exec("/root/.local/share/letsencrypt/bin/letsencrypt auth --text --agree-tos --authenticator webroot --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --email postmaster@$domain --domains $lddomain --webroot-path " . escapeshellarg($webroot));
               }
            };
@@ -1229,6 +1233,7 @@
      // Rewrite rules
      $rewrite_rules = array();
      $rewrite_wildcard_rules = array();
      if($data['new']['redirect_type'] != '' && $data['new']['redirect_path'] != '') {
         if(substr($data['new']['redirect_path'], -1) != '/' && !preg_match('/^(https?|\[scheme\]):\/\//', $data['new']['redirect_path'])) $data['new']['redirect_path'] .= '/';
         if(substr($data['new']['redirect_path'], 0, 8) == '[scheme]'){
@@ -1260,7 +1265,7 @@
               'rewrite_add_path' => (substr($rewrite_target, -1) == '/' ? 'y' : 'n'));
            break;
         case '*':
            $rewrite_rules[] = array( 'rewrite_domain'  => '(^|\.)'.$this->_rewrite_quote($data['new']['domain']),
            $rewrite_wildcard_rules[] = array( 'rewrite_domain'  => '(^|\.)'.$this->_rewrite_quote($data['new']['domain']),
               'rewrite_type'   => ($data['new']['redirect_type'] == 'no')?'':'['.$data['new']['redirect_type'].']',
               'rewrite_target'  => $rewrite_target,
               'rewrite_target_ssl' => $rewrite_target_ssl,
@@ -1359,7 +1364,7 @@
                     'rewrite_add_path' => (substr($rewrite_target, -1) == '/' ? 'y' : 'n'));
                  break;
               case '*':
                  $rewrite_rules[] = array( 'rewrite_domain'  => '(^|\.)'.$this->_rewrite_quote($alias['domain']),
                  $rewrite_wildcard_rules[] = array( 'rewrite_domain'  => '(^|\.)'.$this->_rewrite_quote($alias['domain']),
                     'rewrite_type'   => ($alias['redirect_type'] == 'no')?'':'['.$alias['redirect_type'].']',
                     'rewrite_target'  => $rewrite_target,
                     'rewrite_target_ssl' => $rewrite_target_ssl,
@@ -1396,6 +1401,8 @@
      } else {
         $tpl->setVar('alias', '');
      }
      if (count($rewrite_wildcard_rules) > 0) $rewrite_rules = array_merge($rewrite_rules, $rewrite_wildcard_rules); // Append wildcard rules to the end of rules
      if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0 || count($alias_seo_redirects) > 0) {
         $tpl->setVar('rewrite_enabled', 1);