From 1cbeab3359dfb5cb0f5f3463947cadb11ec6c84e Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Sun, 21 Jun 2009 12:55:36 -0400 Subject: [PATCH] FS#769 - DNS Zone - Duplicate entry --- server/plugins-available/apache2_plugin.inc.php | 34 +++++++++++++++++++++++++++------- 1 files changed, 27 insertions(+), 7 deletions(-) diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php index 87ed509..db4266f 100644 --- a/server/plugins-available/apache2_plugin.inc.php +++ b/server/plugins-available/apache2_plugin.inc.php @@ -506,6 +506,7 @@ // Rewrite rules $rewrite_rules = array(); if($data["new"]["redirect_type"] != '') { + if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; $rewrite_rules[] = array( 'rewrite_domain' => $data["new"]["domain"], 'rewrite_type' => ($data["new"]["redirect_type"] == 'no')?'':'['.$data["new"]["redirect_type"].']', 'rewrite_target' => $data["new"]["redirect_path"]); @@ -527,30 +528,32 @@ // 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'"); - switch($data["new"]["subdomain"]) { + $server_alias = array(); + switch($data["new"]["subdomain"]) { case 'www': - $server_alias .= 'www.'.$data["new"]["domain"].' '; + $server_alias[] .= 'www.'.$data["new"]["domain"].' '; break; case '*': - $server_alias .= '*.'.$data["new"]["domain"].' '; + $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"].' '; + $server_alias[] .= 'www.'.$alias["domain"].' '.$alias["domain"].' '; break; case '*': - $server_alias .= '*.'.$alias["domain"].' '.$alias["domain"].' '; + $server_alias[] .= '*.'.$alias["domain"].' '.$alias["domain"].' '; break; default: - $server_alias .= $alias["domain"].' '; + $server_alias[] .= $alias["domain"].' '; break; } $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG); // Rewriting if($alias["redirect_type"] != '') { + if(substr($data["new"]["redirect_path"],-1) != '/') $data["new"]["redirect_path"] .= '/'; $rewrite_rules[] = array( 'rewrite_domain' => $alias["domain"], 'rewrite_type' => ($alias["redirect_type"] == 'no')?'':'['.$alias["redirect_type"].']', 'rewrite_target' => $alias["redirect_path"]); @@ -570,7 +573,24 @@ } } } - $tpl->setVar('alias',trim($server_alias)); + + //* If we have some alias records + if(count($server_alias) > 0) { + $server_alias_str = ''; + $n = 0; + + // begin a new ServerAlias line after 30 alias domains + foreach($server_alias as $tmp_alias) { + if($n % 30 == 0) $server_alias_str .= "\n ServerAlias "; + $server_alias_str .= $tmp_alias; + } + unset($tmp_alias); + + $tpl->setVar('alias',trim($server_alias_str)); + } else { + $tpl->setVar('alias',''); + } + if(count($rewrite_rules) > 0) { $tpl->setVar('rewrite_enabled',1); } else { -- Gitblit v1.9.1