From 7227e86264ce29150c51a289fea143af53108d4e Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 18 Dec 2008 07:34:05 -0500
Subject: [PATCH] Replace website symlink in /var/www when target directory has been changed.

---
 server/plugins-available/apache2_plugin.inc.php |   29 +++++++++++++++++++++++------
 1 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index b822f7c..da6d877 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -302,6 +302,10 @@
 				$tmp_symlink = str_replace("[website_domain]",$data["new"]["domain"],$tmp_symlink);
 				// Remove trailing slash
 				if(substr($tmp_symlink, -1, 1) == '/') $tmp_symlink = substr($tmp_symlink, 0, -1);
+				//* Remove symlink if target folder has been changed.
+				if($data["old"]["document_root"] != '' && $data["old"]["document_root"] != $data["new"]["document_root"] && is_link($tmp_symlink)) {
+					unlink($tmp_symlink);
+				}
 				// create the symlinks, if not exist
 				if(!is_link($tmp_symlink)) {
 					exec("ln -s ".escapeshellcmd($data["new"]["document_root"])."/ ".escapeshellcmd($tmp_symlink));
@@ -420,14 +424,27 @@
 		
 		// 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'");
-    if($data["new"]["is_subdomainwww"]){
-  	  $server_alias .= 'www.'.$data["new"]["domain"].' ';
-    } else {
-  		$server_alias = '';
-    }
+        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) {
-			  $server_alias .= $alias["domain"].' ';
+                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);
 				// Rewriting
 				if($alias["redirect_type"] != '') {

--
Gitblit v1.9.1