don't use makeCorrectFile() on custom error-pages when it is a URL; also fix include-order for lighttpd vhosts, fixes #833

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann (d00p)
2013-04-26 18:53:20 +02:00
parent fb4c809ba4
commit b93bb806f6
3 changed files with 114 additions and 65 deletions

View File

@@ -146,24 +146,36 @@ class apache
$this->virtualhosts_data[$vhosts_filename] = ''; $this->virtualhosts_data[$vhosts_filename] = '';
} }
if($this->settings['defaultwebsrverrhandler']['err401'] != '') if ($this->settings['defaultwebsrverrhandler']['err401'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err401'];
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 401 "' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err401']) . '"'."\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 401 "' . $defhandler . '"'."\n";
} }
if($this->settings['defaultwebsrverrhandler']['err403'] != '') if ($this->settings['defaultwebsrverrhandler']['err403'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err403'];
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 403 "' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err403']) . '"' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 403 "' . $defhandler . '"' . "\n";
} }
if($this->settings['defaultwebsrverrhandler']['err404'] != '') if ($this->settings['defaultwebsrverrhandler']['err404'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err404'];
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 404 "' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err404']) . '"' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 404 "' . $defhandler . '"' . "\n";
} }
if($this->settings['defaultwebsrverrhandler']['err500'] != '') if ($this->settings['defaultwebsrverrhandler']['err500'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err500'];
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 500 "' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err500']) . '"' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->virtualhosts_data[$vhosts_filename].= 'ErrorDocument 500 "' . $defhandler . '"' . "\n";
} }
} }
@@ -961,22 +973,34 @@ class apache
fwrite($this->debugHandler, ' cron_tasks: Task3 - Setting Options -Indexes' . "\n"); fwrite($this->debugHandler, ' cron_tasks: Task3 - Setting Options -Indexes' . "\n");
} }
if(isset($row_diroptions['error404path']) if (isset($row_diroptions['error404path'])
&& $row_diroptions['error404path'] != '') && $row_diroptions['error404path'] != ''
{ ) {
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 404 "' . makeCorrectFile($row_diroptions['error404path']) . '"' . "\n"; $defhandler = $row_diroptions['error404path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 404 "' . $defhandler. '"' . "\n";
} }
if(isset($row_diroptions['error403path']) if (isset($row_diroptions['error403path'])
&& $row_diroptions['error403path'] != '') && $row_diroptions['error403path'] != ''
{ ) {
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 403 "' . makeCorrectFile($row_diroptions['error403path']) . '"' . "\n"; $defhandler = $row_diroptions['error403path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 403 "' . $defhandler . '"' . "\n";
} }
if(isset($row_diroptions['error500path']) if (isset($row_diroptions['error500path'])
&& $row_diroptions['error500path'] != '') && $row_diroptions['error500path'] != ''
{ ) {
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 500 "' . makeCorrectFile($row_diroptions['error500path']) . '"' . "\n"; $defhandler = $row_diroptions['error500path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->diroptions_data[$diroptions_filename].= ' ErrorDocument 500 "' . $defhandler . '"' . "\n";
} }
if($cperlenabled if($cperlenabled

View File

@@ -247,14 +247,18 @@ class lighttpd
if($this->settings['defaultwebsrverrhandler']['enabled'] == '1' if($this->settings['defaultwebsrverrhandler']['enabled'] == '1'
&& $this->settings['defaultwebsrverrhandler']['err404'] != '' && $this->settings['defaultwebsrverrhandler']['err404'] != ''
) { ) {
$vhosts_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/05_froxlor_default_errorhandler.conf'); $vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'] . '/05_froxlor_default_errorhandler.conf');
if(!isset($this->lighttpd_data[$vhost_filename])) if(!isset($this->lighttpd_data[$vhost_filename]))
{ {
$this->lighttpd_data[$vhost_filename] = ''; $this->lighttpd_data[$vhost_filename] = '';
} }
$this->lighttpd_data[$vhost_filename] = 'server.error-handler-404 = "'.makeCorrectFile($this->settings['defaultwebsrverrhandler']['err404']).'"'; $defhandler = $this->settings['defaultwebsrverrhandler']['err404'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->lighttpd_data[$vhost_filename] = 'server.error-handler-404 = "'.$defhandler.'"';
} }
} }
@@ -352,34 +356,28 @@ class lighttpd
$_pos = strrpos($_tmp_path, '/'); $_pos = strrpos($_tmp_path, '/');
$_inc_path = substr($_tmp_path, $_pos+1); $_inc_path = substr($_tmp_path, $_pos+1);
// subdomain
if((int)$domain['parentdomainid'] == 0 if((int)$domain['parentdomainid'] == 0
&& isCustomerStdSubdomain((int)$domain['id']) == false && isCustomerStdSubdomain((int)$domain['id']) == false
&& ((int)$domain['ismainbutsubto'] == 0 && ((int)$domain['ismainbutsubto'] == 0
|| domainMainToSubExists($domain['ismainbutsubto']) == false) || domainMainToSubExists($domain['ismainbutsubto']) == false)
) { ) {
$vhost_no = '52'; $vhost_no = '50';
if($ssl == '1')
{
$vhost_no = '62';
}
} }
// sub-but-main-domain
elseif((int)$domain['parentdomainid'] == 0 elseif((int)$domain['parentdomainid'] == 0
&& isCustomerStdSubdomain((int)$domain['id']) == false && isCustomerStdSubdomain((int)$domain['id']) == false
&& (int)$domain['ismainbutsubto'] > 0 && (int)$domain['ismainbutsubto'] > 0
) { ) {
$vhost_no = '51'; $vhost_no = '51';
if($ssl == '1')
{
$vhost_no = '61';
}
} }
else // main domain
{ else {
$vhost_no = '50'; $vhost_no = '52';
if($ssl == '1') }
{
$vhost_no = '60'; if ($ssl == '1') {
} $vhost_no = (int)$vhost_no += 10;
} }
$vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'].'/vhosts/'.$vhost_no.'_'.$domain['domain'].'.conf'); $vhost_filename = makeCorrectFile($this->settings['system']['apacheconf_vhost'].'/vhosts/'.$vhost_no.'_'.$domain['domain'].'.conf');
@@ -614,11 +612,14 @@ class lighttpd
$path_options = ''; $path_options = '';
$error_string = ''; $error_string = '';
while($row = $this->db->fetch_array($result)) while ($row = $this->db->fetch_array($result)) {
{
if(!empty($row['error404path'])) if (!empty($row['error404path'])) {
{ $defhandler = $row['error404path'];
$error_string.= ' server.error-handler-404 = "' . makeCorrectFile($domain['documentroot'] . '/' . $row['error404path']) . '"' . "\n\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($domain['documentroot'] . '/' . $defhandler);
}
$error_string.= ' server.error-handler-404 = "' . $defhandler . '"' . "\n\n";
} }
if($row['options_indexes'] != '0') if($row['options_indexes'] != '0')
@@ -901,10 +902,10 @@ class lighttpd
$vhosts_file = ''; $vhosts_file = '';
// sort by filename so the order is: // sort by filename so the order is:
// 1. subdomains // 1. main-domains
// 2. subdomains as main-domains // 2. subdomains as main-domains
// 3. main-domains // 3. subdomains
// #437 // (former #437) - #833 (the numbering is done in createLighttpdHosts())
ksort($this->lighttpd_data); ksort($this->lighttpd_data);
foreach($this->lighttpd_data as $vhosts_filename => $vhost_content) foreach($this->lighttpd_data as $vhosts_filename => $vhost_content)

View File

@@ -115,24 +115,36 @@ class nginx
$this->nginx_data[$vhosts_filename] = ''; $this->nginx_data[$vhosts_filename] = '';
} }
if($this->settings['defaultwebsrverrhandler']['err401'] != '') if ($this->settings['defaultwebsrverrhandler']['err401'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err401'];
$this->nginx_data[$vhosts_filename].= 'error_page 401 ' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err401']) . ';' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->nginx_data[$vhosts_filename].= 'error_page 401 ' . $defhandler . ';' . "\n";
} }
if($this->settings['defaultwebsrverrhandler']['err403'] != '') if ($this->settings['defaultwebsrverrhandler']['err403'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err403'];
$this->nginx_data[$vhosts_filename].= 'error_page 403 ' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err403']) . ';' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->nginx_data[$vhosts_filename].= 'error_page 403 ' . $defhandler . ';' . "\n";
} }
if($this->settings['defaultwebsrverrhandler']['err404'] != '') if ($this->settings['defaultwebsrverrhandler']['err404'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err404'];
$this->nginx_data[$vhosts_filename].= 'error_page 404 ' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err404']) . ';' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->nginx_data[$vhosts_filename].= 'error_page 404 ' . $defhandler . ';' . "\n";
} }
if($this->settings['defaultwebsrverrhandler']['err500'] != '') if ($this->settings['defaultwebsrverrhandler']['err500'] != '') {
{ $defhandler = $this->settings['defaultwebsrverrhandler']['err500'];
$this->nginx_data[$vhosts_filename].= 'error_page 500 ' . makeCorrectFile($this->settings['defaultwebsrverrhandler']['err500']) . ';' . "\n"; if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$this->nginx_data[$vhosts_filename].= 'error_page 500 ' . $defhandler . ';' . "\n";
} }
} }
@@ -467,15 +479,27 @@ class nginx
while ($row = $this->db->fetch_array($result)) { while ($row = $this->db->fetch_array($result)) {
if (!empty($row['error404path'])) { if (!empty($row['error404path'])) {
$path_options.= "\t".'error_page 404 ' . makeCorrectFile($row['error404path']) . ';' . "\n"; $defhandler = $row['error404path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$path_options.= "\t".'error_page 404 ' . $defhandler . ';' . "\n";
} }
if (!empty($row['error403path'])) { if (!empty($row['error403path'])) {
$path_options.= "\t".'error_page 403 ' . makeCorrectFile($row['error403path']) . ';' . "\n"; $defhandler = $row['error403path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$path_options.= "\t".'error_page 403 ' . $defhandler . ';' . "\n";
} }
if (!empty($row['error500path'])) { if (!empty($row['error500path'])) {
$path_options.= "\t".'error_page 502 503 504 ' . makeCorrectFile($row['error500path']) . ';' . "\n"; $defhandler = $row['error500path'];
if (!validateUrl($defhandler)) {
$defhandler = makeCorrectFile($defhandler);
}
$path_options.= "\t".'error_page 500 502 503 504 ' . $defhandler . ';' . "\n";
} }
// if($row['options_indexes'] != '0') // if($row['options_indexes'] != '0')