From b3b0e7b52d2340863fdfe795329e95d8d89fbc7a Mon Sep 17 00:00:00 2001 From: mcramer <m.cramer@pixcept.de> Date: Mon, 05 Nov 2012 13:33:21 -0500 Subject: [PATCH] Fixed: filter input fields for login and real name in mail user list were switched --- server/plugins-available/nginx_plugin.inc.php | 270 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 185 insertions(+), 85 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 399cb1e..a9d55fd 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -115,7 +115,7 @@ $crt_file = $ssl_dir.'/'.$domain.'.crt'; //* Create a SSL Certificate - if($data['new']['ssl_action'] == 'create') { + if($data['new']['ssl_action'] == 'create' && $conf['mirror_server_id'] == 0) { $this->ssl_certificate_changed = true; @@ -934,9 +934,10 @@ $vhost_data['seo_redirect_enabled'] = 0; } - $tpl->setVar($vhost_data); + // Rewrite rules + $own_rewrite_rules = array(); $rewrite_rules = array(); if($data['new']['redirect_type'] != '' && $data['new']['redirect_path'] != '') { if(substr($data['new']['redirect_path'],-1) != '/') $data['new']['redirect_path'] .= '/'; @@ -951,28 +952,47 @@ switch($data['new']['subdomain']) { case 'www': if(substr($data['new']['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($data['new']['redirect_path'],0,-1).')'; + if($data['new']['redirect_type'] == 'internal'){ + $vhost_data['web_document_root_www'] .= $data['new']['redirect_path']; + break; + } + $rewrite_exclude = '(?!(/'.substr($data['new']['redirect_path'],1,-1).'|stats'.($vhost_data['errordocs'] == 1 ? '|error' : '').')/)'; } else { // URL - check if URL is local $tmp_redirect_path = $data['new']['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); $tmp_redirect_path_parts = parse_url($tmp_redirect_path); - if($tmp_redirect_path_parts['host'] == $data['new']['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ + if(($tmp_redirect_path_parts['host'] == $data['new']['domain'] || $tmp_redirect_path_parts['host'] == 'www.'.$data['new']['domain']) && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ + // URL is local if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; + if($data['new']['redirect_type'] == 'internal'){ + $vhost_data['web_document_root_www'] .= $tmp_redirect_path_parts['path']; + break; + } else { + $rewrite_exclude = '(?!(/'.substr($tmp_redirect_path_parts['path'],1).'|stats'.($vhost_data['errordocs'] == 1 ? '|error' : '').')/)'; + } } else { + // external URL $rewrite_exclude = '(.?)'; + if($data['new']['redirect_type'] == 'internal'){ + $vhost_data['use_internal'] = 'y'; + } else { + + } } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); } - $rewrite_rules[] = array( 'rewrite_domain' => '^'.$this->_rewrite_quote($data['new']['domain']), - 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], - 'rewrite_target' => $data['new']['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); - + $own_rewrite_rules[] = array( 'rewrite_domain' => '^'.$this->_rewrite_quote($data['new']['domain']), + 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], + 'rewrite_target' => ($data['new']['redirect_type'] != 'internal' && ($data['new']['redirect_type'] == 'redirect' || $data['new']['redirect_type'] == 'permanent')? substr($data['new']['redirect_path'],0,-1) : $data['new']['redirect_path']), + 'rewrite_exclude' => $rewrite_exclude, + 'use_rewrite' => ($data['new']['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($data['new']['redirect_type'] == 'internal' ? true:false)); + /* if(substr($data['new']['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($data['new']['redirect_path'],0,-1).')'; + $rewrite_exclude = '((?!'.substr($data['new']['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local $tmp_redirect_path = $data['new']['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); @@ -980,21 +1000,37 @@ if($tmp_redirect_path_parts['host'] == 'www.'.$data['new']['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; + if($data['new']['redirect_type'] == 'internal'){ + $vhost_data['web_document_root_www'] .= $tmp_redirect_path_parts['path']; + break; + } else { + + } } else { $rewrite_exclude = '(.?)'; + if($data['new']['redirect_type'] == 'internal'){ + + } else { + + } } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); } - $rewrite_rules[] = array( 'rewrite_domain' => '^' . $this->_rewrite_quote('www.'.$data['new']['domain']), - 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], - 'rewrite_target' => $data['new']['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); + $own_rewrite_rules[] = array( 'rewrite_domain' => '^' . $this->_rewrite_quote('www.'.$data['new']['domain']), + 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], + 'rewrite_target' => $data['new']['redirect_path'], + 'rewrite_exclude' => $rewrite_exclude, + 'use_rewrite' => ($data['new']['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($data['new']['redirect_type'] == 'internal' ? true:false)); + */ break; case '*': if(substr($data['new']['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($data['new']['redirect_path'],0,-1).')'; + if($data['new']['redirect_type'] == 'internal') $vhost_data['web_document_root_www'] .= $data['new']['redirect_path']; + break; + $rewrite_exclude = '((?!'.substr($data['new']['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local $tmp_redirect_path = $data['new']['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); @@ -1002,21 +1038,23 @@ if(substr($tmp_redirect_path_parts['host'],-strlen($data['new']['domain'])) == $data['new']['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { $rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); } - $rewrite_rules[] = array( 'rewrite_domain' => '(^|\.)'.$this->_rewrite_quote($data['new']['domain']), + $own_rewrite_rules[] = array( 'rewrite_domain' => '(^|\.)'.$this->_rewrite_quote($data['new']['domain']), 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], 'rewrite_target' => $data['new']['redirect_path'], 'rewrite_exclude' => $rewrite_exclude); break; default: if(substr($data['new']['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($data['new']['redirect_path'],0,-1).')'; + if($data['new']['redirect_type'] == 'internal') $vhost_data['web_document_root_www'] .= $data['new']['redirect_path']; + break; + $rewrite_exclude = '((?!'.substr($data['new']['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local $tmp_redirect_path = $data['new']['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); @@ -1024,19 +1062,21 @@ if($tmp_redirect_path_parts['host'] == $data['new']['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { $rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); } - $rewrite_rules[] = array( 'rewrite_domain' => '^'.$this->_rewrite_quote($data['new']['domain']), + $own_rewrite_rules[] = array( 'rewrite_domain' => '^'.$this->_rewrite_quote($data['new']['domain']), 'rewrite_type' => ($data['new']['redirect_type'] == 'no')?'':$data['new']['redirect_type'], 'rewrite_target' => $data['new']['redirect_path'], 'rewrite_exclude' => $rewrite_exclude); } } + + $tpl->setVar($vhost_data); $server_alias = array(); @@ -1056,32 +1096,42 @@ // get alias domains (co-domains and subdomains) $aliases = $app->db->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y' AND type != 'vhostsubdomain'"); - switch($data['new']['subdomain']) { - case 'www': - $server_alias[] = 'www.'.$data['new']['domain'].' '; - break; - case '*': - $server_alias[] = '*.'.$data['new']['domain'].' '; - break; - } + //if($data['new']['redirect_type'] == '' || $data['new']['redirect_path'] == ''){ + switch($data['new']['subdomain']) { + case 'www': + $server_alias[] = 'www.'.$data['new']['domain'].' '; + break; + case '*': + $server_alias[] = '*.'.$data['new']['domain'].' '; + break; + } + //} if(is_array($aliases)) { foreach($aliases as $alias) { - switch($alias['subdomain']) { - case 'www': - $server_alias[] = 'www.'.$alias['domain'].' '.$alias['domain'].' '; - break; - case '*': - $server_alias[] = '*.'.$alias['domain'].' '.$alias['domain'].' '; - break; - default: - $server_alias[] = $alias['domain'].' '; - break; + if($alias['redirect_type'] == '' || $alias['redirect_path'] == '') { + switch($alias['subdomain']) { + case 'www': + $server_alias[] = 'www.'.$alias['domain'].' '.$alias['domain'].' '; + break; + case '*': + $server_alias[] = '*.'.$alias['domain'].' '.$alias['domain'].' '; + break; + default: + $server_alias[] = $alias['domain'].' '; + break; + } + $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG); } - $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG); // Rewriting if($alias['redirect_type'] != '' && $alias['redirect_path'] != '') { if(substr($alias['redirect_path'],-1) != '/') $alias['redirect_path'] .= '/'; - if(substr($alias['redirect_path'],0,8) == '[scheme]') $alias['redirect_path'] = '$scheme'.substr($alias['redirect_path'],8); + if(substr($alias['redirect_path'],0,8) == '[scheme]'){ + if($alias['redirect_type'] != 'internal'){ + $alias['redirect_path'] = '$scheme'.substr($alias['redirect_path'],8); + } else { + $alias['redirect_path'] = 'http'.substr($alias['redirect_path'],8); + } + } /* Disabled the path extension if($data['new']['redirect_type'] == 'no' && substr($data['new']['redirect_path'],0,4) != 'http') { @@ -1092,92 +1142,128 @@ switch($alias['subdomain']) { case 'www': if(substr($alias['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($alias['redirect_path'],0,-1).')'; + //$rewrite_exclude = '((?!'.substr($alias['redirect_path'],0,-1).'))'; + //if($alias['redirect_type'] == 'internal'){ + $alias['redirect_path'] = 'http://'.($vhost_data['seo_redirect_enabled'] ? $vhost_data['seo_redirect_target_domain'] : $data['new']['domain']).$alias['redirect_path']; + //} } else { // URL - check if URL is local + /* $tmp_redirect_path = $alias['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); $tmp_redirect_path_parts = parse_url($tmp_redirect_path); if($tmp_redirect_path_parts['host'] == $alias['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + //$rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { - $rewrite_exclude = '(.?)'; + //$rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); + */ } - $rewrite_rules[] = array( 'rewrite_domain' => '^'.$this->_rewrite_quote($alias['domain']), + if($alias['redirect_type'] != 'internal'){ + if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1); + } + $rewrite_rules[] = array( 'rewrite_domain' => $alias['domain'], 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], 'rewrite_target' => $alias['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); + 'use_rewrite' => ($alias['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($alias['redirect_type'] == 'internal' ? true:false)); if(substr($alias['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($alias['redirect_path'],0,-1).')'; + //if($alias['redirect_type'] != 'internal'){ + $alias['redirect_path'] = 'http://'.($vhost_data['seo_redirect_enabled'] ? $vhost_data['seo_redirect_target_domain'] : $data['new']['domain']).$alias['redirect_path']; + //} + //$rewrite_exclude = '((?!'.substr($alias['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local + /* $tmp_redirect_path = $alias['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); $tmp_redirect_path_parts = parse_url($tmp_redirect_path); if($tmp_redirect_path_parts['host'] == 'www.'.$alias['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { $rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); + */ } - $rewrite_rules[] = array( 'rewrite_domain' => '^' . $this->_rewrite_quote('www.'.$alias['domain']), - 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], - 'rewrite_target' => $alias['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); + if($alias['redirect_type'] != 'internal'){ + if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1); + } + $rewrite_rules[] = array( 'rewrite_domain' => 'www.'.$alias['domain'], + 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], + 'rewrite_target' => $alias['redirect_path'], + 'use_rewrite' => ($alias['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($alias['redirect_type'] == 'internal' ? true:false)); break; case '*': if(substr($alias['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($alias['redirect_path'],0,-1).')'; + //if($alias['redirect_type'] != 'internal'){ + $alias['redirect_path'] = 'http://'.($vhost_data['seo_redirect_enabled'] ? $vhost_data['seo_redirect_target_domain'] : $data['new']['domain']).$alias['redirect_path']; + //} + //$rewrite_exclude = '((?!'.substr($alias['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local + /* $tmp_redirect_path = $alias['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); $tmp_redirect_path_parts = parse_url($tmp_redirect_path); if(substr($tmp_redirect_path_parts['host'],-strlen($alias['domain'])) == $alias['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { $rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); + */ } - $rewrite_rules[] = array( 'rewrite_domain' => '(^|\.)' . $this->_rewrite_quote($alias['domain']), + if($alias['redirect_type'] != 'internal'){ + if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1); + } + $rewrite_rules[] = array( 'rewrite_domain' => '*' . $alias['domain'], 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], 'rewrite_target' => $alias['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); + 'use_rewrite' => ($alias['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($alias['redirect_type'] == 'internal' ? true:false)); break; default: if(substr($alias['redirect_path'],0,1) == '/'){ // relative path - $rewrite_exclude = '(?!'.substr($alias['redirect_path'],0,-1).')'; + //if($alias['redirect_type'] != 'internal'){ + $alias['redirect_path'] = 'http://'.($vhost_data['seo_redirect_enabled'] ? $vhost_data['seo_redirect_target_domain'] : $data['new']['domain']).$alias['redirect_path']; + //} + //$rewrite_exclude = '((?!'.substr($alias['redirect_path'],0,-1).'))'; } else { // URL - check if URL is local + /* $tmp_redirect_path = $alias['redirect_path']; if(substr($tmp_redirect_path,0,7) == '$scheme') $tmp_redirect_path = 'http'.substr($tmp_redirect_path,7); $tmp_redirect_path_parts = parse_url($tmp_redirect_path); if($tmp_redirect_path_parts['host'] == $alias['domain'] && ($tmp_redirect_path_parts['port'] == '80' || $tmp_redirect_path_parts['port'] == '443' || !isset($tmp_redirect_path_parts['port']))){ if(substr($tmp_redirect_path_parts['path'],-1) == '/') $tmp_redirect_path_parts['path'] = substr($tmp_redirect_path_parts['path'],0,-1); if(substr($tmp_redirect_path_parts['path'],0,1) != '/') $tmp_redirect_path_parts['path'] = '/'.$tmp_redirect_path_parts['path']; - $rewrite_exclude = '(?!'.$tmp_redirect_path_parts['path'].')'; + $rewrite_exclude = '((?!'.$tmp_redirect_path_parts['path'].'))'; } else { $rewrite_exclude = '(.?)'; } unset($tmp_redirect_path); unset($tmp_redirect_path_parts); + */ } - if(substr($alias['domain'], 0, 2) === '*.') $domain_rule = '(^|\.)'.$this->_rewrite_quote($alias['domain']); - else $domain_rule = '^'.$this->_rewrite_quote($alias['domain']); + if($alias['redirect_type'] != 'internal'){ + if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1); + } + if(substr($alias['domain'], 0, 2) === '*.') $domain_rule = '*.'.substr($alias['domain'], 2); + else $domain_rule = $alias['domain']; $rewrite_rules[] = array( 'rewrite_domain' => $domain_rule, - 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], - 'rewrite_target' => $alias['redirect_path'], - 'rewrite_exclude' => $rewrite_exclude); + 'rewrite_type' => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'], + 'rewrite_target' => $alias['redirect_path'], + 'use_rewrite' => ($alias['redirect_type'] == 'internal' ? false:true), + 'use_internal' => ($alias['redirect_type'] == 'internal' ? true:false)); } } } @@ -1200,6 +1286,9 @@ if(count($rewrite_rules) > 0) { $tpl->setLoop('redirects',$rewrite_rules); + } + if(count($own_rewrite_rules) > 0) { + $tpl->setLoop('own_redirects',$own_rewrite_rules); } //* Create basic http auth for website statistics @@ -1792,7 +1881,11 @@ } if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html"); - $app->system->copy("/usr/local/ispconfig/server/conf/awstats_index.php.master",$data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + if(file_exists("/usr/local/ispconfig/server/conf-custom/awstats_index.php.master")) { + $app->system->copy("/usr/local/ispconfig/server/conf-custom/awstats_index.php.master",$data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } else { + $app->system->copy("/usr/local/ispconfig/server/conf/awstats_index.php.master",$data['new']['document_root']."/" . $web_folder . "/stats/index.php"); + } } //* Delete the awstats configuration file @@ -1904,27 +1997,31 @@ $ini_settings = explode("\n", $custom_php_ini_settings); if(is_array($ini_settings) && !empty($ini_settings)){ foreach($ini_settings as $ini_setting){ - list($key, $value) = explode('=', $ini_setting); - if($value){ - $value = trim($value); - $key = trim($key); - switch (strtolower($value)) { - case '0': - // PHP-FPM might complain about invalid boolean value if you use 0 - $value = 'off'; - case '1': - case 'on': - case 'off': - case 'true': - case 'false': - case 'yes': - case 'no': - $final_php_ini_settings[] = array('ini_setting' => 'php_admin_flag['.$key.'] = '.$value); - break; - default: - $final_php_ini_settings[] = array('ini_setting' => 'php_admin_value['.$key.'] = '.$value); - } + $ini_setting = trim($ini_setting); + if(substr($ini_setting,0,1) == ';') continue; + if(substr($ini_setting,0,1) == '#') continue; + if(substr($ini_setting,0,2) == '//') continue; + list($key, $value) = explode('=', $ini_setting); + if($value){ + $value = trim($value); + $key = trim($key); + switch (strtolower($value)) { + case '0': + // PHP-FPM might complain about invalid boolean value if you use 0 + $value = 'off'; + case '1': + case 'on': + case 'off': + case 'true': + case 'false': + case 'yes': + case 'no': + $final_php_ini_settings[] = array('ini_setting' => 'php_admin_flag['.$key.'] = '.$value); + break; + default: + $final_php_ini_settings[] = array('ini_setting' => 'php_admin_value['.$key.'] = '.$value); } + } } } } @@ -2035,9 +2132,12 @@ $locations = array(); $islocation = false; $linecount = sizeof($lines); + $server_count = 0; for($i=0;$i<$linecount;$i++){ $l = trim($lines[$i]); + if(substr($l, 0, 8) == 'server {') $server_count += 1; + if($server_count > 1) break; if(substr($l, 0, 8) == 'location' && !$islocation){ $islocation = true; -- Gitblit v1.9.1