ftimme
2012-11-08 f26825f736be267c68709efc5d359a7ba7858ade
- Added SEO Redirects to alias domains.
6 files modified
293 ■■■■■ changed files
interface/web/sites/form/web_aliasdomain.tform.php 6 ●●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_aliasdomain_edit.htm 6 ●●●●● patch | view | raw | blame | history
server/conf/nginx_vhost.conf.master 14 ●●●●● patch | view | raw | blame | history
server/conf/vhost.conf.master 4 ●●●● patch | view | raw | blame | history
server/plugins-available/apache2_plugin.inc.php 50 ●●●●● patch | view | raw | blame | history
server/plugins-available/nginx_plugin.inc.php 213 ●●●●● patch | view | raw | blame | history
interface/web/sites/form/web_aliasdomain.tform.php
@@ -141,6 +141,12 @@
                                    ),
            'value'        => array('none' => 'none_txt', 'www' => 'www.', '*' => '*.')
        ),
        'seo_redirect' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'SELECT',
            'default'    => '',
            'value'        => array('' => 'no_redirect_txt', 'non_www_to_www' => 'domain.tld => www.domain.tld', 'www_to_non_www' => 'www.domain.tld => domain.tld', '*_domain_tld_to_domain_tld' => '*.doman.tld => domain.tld', '*_domain_tld_to_www_domain_tld' => '*.domain.tld => www.domain.tld', '*_to_domain_tld' => '* => domain.tld', '*_to_www_domain_tld' => '* => www.domain.tld')
        ),
        'active' => array (
            'datatype'    => 'VARCHAR',
            'formtype'    => 'CHECKBOX',
interface/web/sites/templates/web_aliasdomain_edit.htm
@@ -37,6 +37,12 @@
                    {tmpl_var name='subdomain'}
                </select>
            </div>
            <div class="ctrlHolder">
                <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label>
                <select name="seo_redirect" id="seo_redirect" class="selectInput">
                    {tmpl_var name='seo_redirect'}
                </select>
            </div>
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='active_txt'}</p>
                <div class="multiField">
server/conf/nginx_vhost.conf.master
@@ -22,13 +22,18 @@
            rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri? permanent;
        }
</tmpl_if>
<tmpl_loop name="alias_seo_redirects">
        if ($http_host <tmpl_var name='alias_seo_redirect_operator'> "<tmpl_var name='alias_seo_redirect_origin_domain'>") {
            rewrite ^ $scheme://<tmpl_var name='alias_seo_redirect_target_domain'>$request_uri? permanent;
        }
</tmpl_loop>
<tmpl_loop name="own_redirects">
<tmpl_if name='use_rewrite'>
        rewrite ^<tmpl_var name='rewrite_exclude'>(.*)$ <tmpl_var name='rewrite_target'>$2 <tmpl_var name='rewrite_type'>;
</tmpl_if>
<tmpl_if name='use_proxy'>
        location / {
        location / {
            proxy_pass <tmpl_var name='rewrite_target'>;
            rewrite ^/<tmpl_var name='rewrite_subdir'>/(.*) /$1;
<tmpl_loop name="proxy_directives">
@@ -194,6 +199,13 @@
</tmpl_if>
        
        server_name <tmpl_var name='rewrite_domain'>;
<tmpl_if name='alias_seo_redirects2'>
<tmpl_loop name="alias_seo_redirects2">
        if ($http_host <tmpl_var name='alias_seo_redirect_operator'> "<tmpl_var name='alias_seo_redirect_origin_domain'>") {
            rewrite ^ $scheme://<tmpl_var name='alias_seo_redirect_target_domain'>$request_uri? permanent;
        }
</tmpl_loop>
</tmpl_if>
<tmpl_if name='use_rewrite'>
        rewrite ^ <tmpl_var name='rewrite_target'>$request_uri? <tmpl_var name='rewrite_type'>;
</tmpl_if>
server/conf/vhost.conf.master
@@ -256,6 +256,10 @@
        RewriteCond %{HTTP_HOST} <tmpl_var name='seo_redirect_operator'>^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
        RewriteRule ^(.*)$ http://<tmpl_var name='seo_redirect_target_domain'>$1 [R=301,L]
</tmpl_if>
<tmpl_loop name="alias_seo_redirects">
        RewriteCond %{HTTP_HOST} <tmpl_var name='alias_seo_redirect_operator'>^<tmpl_var name='alias_seo_redirect_origin_domain'>$ [NC]
        RewriteRule ^(.*)$ http://<tmpl_var name='alias_seo_redirect_target_domain'>$1 [R=301,L]
</tmpl_loop>
<tmpl_loop name="redirects">
        RewriteCond %{HTTP_HOST}   <tmpl_var name='rewrite_domain'>$ [NC]
<tmpl_if name="rewrite_is_url" op="==" value="n">
server/plugins-available/apache2_plugin.inc.php
@@ -956,6 +956,7 @@
        
        // 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'");
        $alias_seo_redirects = array();
        switch($data['new']['subdomain']) {
            case 'www':
                $server_alias[] .= 'www.'.$data['new']['domain'].' ';
@@ -978,6 +979,49 @@
                        break;
                }
                $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG);
                // Add SEO redirects for alias domains
                if($alias['seo_redirect'] != ''){
                    if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                        if($alias['seo_redirect'] == 'non_www_to_www'){
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => str_replace('.', '\.', $alias['domain']),
                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                            'alias_seo_redirect_operator'     => '');
                        }
                        if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                            // ^(example\.com|(?!\bwww\b)\.example\.com)$
                            // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => '('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))',
                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                            'alias_seo_redirect_operator'     => '');
                        }
                        if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => 'www\.'.str_replace('.', '\.', $alias['domain']),
                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                            'alias_seo_redirect_operator'     => '!');
                        }
                    }
                    if($alias['seo_redirect'] == 'www_to_non_www'){
                        $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => 'www\.'.str_replace('.', '\.', $alias['domain']),
                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                        'alias_seo_redirect_operator'     => '');
                    }
                    if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                        // ^(.+)\.example\.com$
                        $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => '(.+)\.'.str_replace('.', '\.', $alias['domain']),
                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                        'alias_seo_redirect_operator'     => '');
                    }
                    if($alias['seo_redirect'] == '*_to_domain_tld'){
                        $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => str_replace('.', '\.', $alias['domain']),
                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                        'alias_seo_redirect_operator'     => '!');
                    }
                    $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => $alias_seo_redirect['alias_seo_redirect_origin_domain'],
                                                    'alias_seo_redirect_target_domain'     => $alias_seo_redirect['alias_seo_redirect_target_domain'],
                                                    'alias_seo_redirect_operator'     => $alias_seo_redirect['alias_seo_redirect_operator']);
                }
                // Rewriting
                if($alias['redirect_type'] != '' && $alias['redirect_path'] != '') {
                    if(substr($alias['redirect_path'],-1) != '/') $alias['redirect_path'] .= '/';
@@ -1044,11 +1088,15 @@
            $tpl->setVar('alias','');
        }
        if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0) {
        if(count($rewrite_rules) > 0 || $vhost_data['seo_redirect_enabled'] > 0 || count($alias_seo_redirects) > 0) {
            $tpl->setVar('rewrite_enabled',1);
        } else {
            $tpl->setVar('rewrite_enabled',0);
        }
        if(count($alias_seo_redirects) > 0) {
            $tpl->setLoop('alias_seo_redirects',$alias_seo_redirects);
        }
        //$tpl->setLoop('redirects',$rewrite_rules);
server/plugins-available/nginx_plugin.inc.php
@@ -1165,6 +1165,7 @@
        // 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'");
        $alias_seo_redirects = array();
        if(is_array($aliases)) {
            foreach($aliases as $alias) {
            
@@ -1198,7 +1199,47 @@
                            break;
                    }
                    $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG);
                    // Add SEO redirects for alias domains
                    if($alias['seo_redirect'] != ''){
                        if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                            if($alias['seo_redirect'] == 'non_www_to_www'){
                                $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                'alias_seo_redirect_operator'     => '=');
                            }
                            if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                                // ^(example\.com|(?!\bwww\b)\.example\.com)$
                                // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                                $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => '^('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))$',
                                                                'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                'alias_seo_redirect_operator'     => '~*');
                            }
                            if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                                $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                            'alias_seo_redirect_operator'     => '!=');
                            }
                        }
                        if($alias['seo_redirect'] == 'www_to_non_www'){
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                            'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                            'alias_seo_redirect_operator'     => '=');
                        }
                        if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                            // ^(.+)\.example\.com$
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => '^(.+)\.'.str_replace('.', '\.', $alias['domain']).'$',
                                                            'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                            'alias_seo_redirect_operator'     => '~*');
                        }
                        if($alias['seo_redirect'] == '*_to_domain_tld'){
                            $alias_seo_redirects[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                            'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                            'alias_seo_redirect_operator'     => '!=');
                        }
                    }
                }
                // Rewriting
                if($alias['redirect_type'] != '' && $alias['redirect_path'] != '') {
                    if(substr($alias['redirect_path'],-1) != '/') $alias['redirect_path'] .= '/';
@@ -1230,13 +1271,54 @@
                            if($alias['redirect_type'] != 'proxy'){
                                if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1);
                            }
                            // Add SEO redirects for alias domains
                            $alias_seo_redirects2 = array();
                            if($alias['seo_redirect'] != ''){
                                if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                                    if($alias['seo_redirect'] == 'non_www_to_www'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '=');
                                    }
                                    if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                                        // ^(example\.com|(?!\bwww\b)\.example\.com)$
                                        // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))$',
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '~*');
                                    }
                                    if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '!=');
                                    }
                                }
                                if($alias['seo_redirect'] == 'www_to_non_www'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '=');
                                }
                                if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                                    // ^(.+)\.example\.com$
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^(.+)\.'.str_replace('.', '\.', $alias['domain']).'$',
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '~*');
                                }
                                if($alias['seo_redirect'] == '*_to_domain_tld'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '!=');
                                }
                            }
                            $rewrite_rules[] = array(    'rewrite_domain'     => $alias['domain'],
                                'rewrite_type'         => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'],
                                'rewrite_target'     => $alias['redirect_path'],
                                'rewrite_subdir'    => $rewrite_subdir,
                                'proxy_directives'    => $final_proxy_directives,
                                'use_rewrite'    => ($alias['redirect_type'] == 'proxy' ? false:true),
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false));
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false),
                                'alias_seo_redirects2' => (count($alias_seo_redirects2) > 0 ? $alias_seo_redirects2 : false));
                                
                            if(substr($alias['redirect_path'],0,1) == '/'){ // relative path
                                if($alias['redirect_type'] == 'proxy'){
@@ -1256,13 +1338,53 @@
                            if($alias['redirect_type'] != 'proxy'){
                                if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1);
                            }
                            // Add SEO redirects for alias domains
                            $alias_seo_redirects2 = array();
                            if($alias['seo_redirect'] != ''){
                                if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                                    if($alias['seo_redirect'] == 'non_www_to_www'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '=');
                                    }
                                    if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                                        // ^(example\.com|(?!\bwww\b)\.example\.com)$
                                        // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))$',
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '~*');
                                    }
                                    if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '!=');
                                    }
                                }
                                if($alias['seo_redirect'] == 'www_to_non_www'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '=');
                                }
                                if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                                    // ^(.+)\.example\.com$
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^(.+)\.'.str_replace('.', '\.', $alias['domain']).'$',
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '~*');
                                }
                                if($alias['seo_redirect'] == '*_to_domain_tld'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '!=');
                                }
                            }
                            $rewrite_rules[] = array(    'rewrite_domain'     => 'www.'.$alias['domain'],
                                'rewrite_type'         => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'],
                                'rewrite_target'     => $alias['redirect_path'],
                                'rewrite_subdir'    => $rewrite_subdir,
                                'proxy_directives'    => $final_proxy_directives,
                                'use_rewrite'    => ($alias['redirect_type'] == 'proxy' ? false:true),
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false));
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false),
                                'alias_seo_redirects2' => (count($alias_seo_redirects2) > 0 ? $alias_seo_redirects2 : false));
                            break;
                        case '*':
                            if(substr($alias['redirect_path'],0,1) == '/'){ // relative path
@@ -1283,13 +1405,53 @@
                            if($alias['redirect_type'] != 'proxy'){
                                if(substr($alias['redirect_path'],-1) == '/') $alias['redirect_path'] = substr($alias['redirect_path'],0,-1);
                            }
                            // Add SEO redirects for alias domains
                            $alias_seo_redirects2 = array();
                            if($alias['seo_redirect'] != ''){
                                if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                                    if($alias['seo_redirect'] == 'non_www_to_www'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '=');
                                    }
                                    if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                                        // ^(example\.com|(?!\bwww\b)\.example\.com)$
                                        // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))$',
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '~*');
                                    }
                                    if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '!=');
                                    }
                                }
                                if($alias['seo_redirect'] == 'www_to_non_www'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '=');
                                }
                                if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                                    // ^(.+)\.example\.com$
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^(.+)\.'.str_replace('.', '\.', $alias['domain']).'$',
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '~*');
                                }
                                if($alias['seo_redirect'] == '*_to_domain_tld'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '!=');
                                }
                            }
                            $rewrite_rules[] = array(    'rewrite_domain'     => '*.' . $alias['domain'],
                                'rewrite_type'         => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'],
                                'rewrite_target'     => $alias['redirect_path'],
                                'rewrite_subdir'    => $rewrite_subdir,
                                'proxy_directives'    => $final_proxy_directives,
                                'use_rewrite'    => ($alias['redirect_type'] == 'proxy' ? false:true),
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false));
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false),
                                'alias_seo_redirects2' => (count($alias_seo_redirects2) > 0 ? $alias_seo_redirects2 : false));
                            break;
                        default:
                            if(substr($alias['redirect_path'],0,1) == '/'){ // relative path
@@ -1312,13 +1474,53 @@
                            }
                            if(substr($alias['domain'], 0, 2) === '*.') $domain_rule = '*.'.substr($alias['domain'], 2);
                            else $domain_rule = $alias['domain'];
                            // Add SEO redirects for alias domains
                            $alias_seo_redirects2 = array();
                            if($alias['seo_redirect'] != ''){
                                if($alias['subdomain'] == 'www' || $alias['subdomain'] == '*'){
                                    if($alias['seo_redirect'] == 'non_www_to_www'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '=');
                                    }
                                    if($alias['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                                        // ^(example\.com|(?!\bwww\b)\.example\.com)$
                                        // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^('.str_replace('.', '\.', $alias['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $alias['domain']).'))$',
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '~*');
                                    }
                                    if($alias['seo_redirect'] == '*_to_www_domain_tld'){
                                        $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_target_domain'     => 'www.'.$alias['domain'],
                                                                            'alias_seo_redirect_operator'     => '!=');
                                    }
                                }
                                if($alias['seo_redirect'] == 'www_to_non_www'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => 'www.'.$alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '=');
                                }
                                if($alias['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                                    // ^(.+)\.example\.com$
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => '^(.+)\.'.str_replace('.', '\.', $alias['domain']).'$',
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '~*');
                                }
                                if($alias['seo_redirect'] == '*_to_domain_tld'){
                                    $alias_seo_redirects2[] = array(    'alias_seo_redirect_origin_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_target_domain'     => $alias['domain'],
                                                                        'alias_seo_redirect_operator'     => '!=');
                                }
                            }
                            $rewrite_rules[] = array(    'rewrite_domain'     => $domain_rule,
                                'rewrite_type'         => ($alias['redirect_type'] == 'no')?'':$alias['redirect_type'],
                                'rewrite_target'     => $alias['redirect_path'],
                                'rewrite_subdir'    => $rewrite_subdir,
                                'proxy_directives'    => $final_proxy_directives,
                                'use_rewrite'    => ($alias['redirect_type'] == 'proxy' ? false:true),
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false));
                                'use_proxy'    => ($alias['redirect_type'] == 'proxy' ? true:false),
                                'alias_seo_redirects2' => (count($alias_seo_redirects2) > 0 ? $alias_seo_redirects2 : false));
                    }
                }
            }
@@ -1345,6 +1547,9 @@
        if(count($own_rewrite_rules) > 0) {
            $tpl->setLoop('own_redirects',$own_rewrite_rules);
        }
        if(count($alias_seo_redirects) > 0) {
            $tpl->setLoop('alias_seo_redirects',$alias_seo_redirects);
        }
        
        //* Create basic http auth for website statistics
        $tpl->setVar('stats_auth_passwd_file', $data['new']['document_root']."/web/stats/.htpasswd_stats");