ftimme
2012-11-08 e34fec13567f76f1a052362c071bd7e1a85dd7cf
- Added more options to the SEO Redirect field.
6 files modified
70 ■■■■ changed files
interface/web/sites/form/web_domain.tform.php 2 ●●● patch | view | raw | blame | history
interface/web/sites/templates/web_domain_redirect.htm 2 ●●● patch | view | raw | blame | history
server/conf/nginx_vhost.conf.master 2 ●●● patch | view | raw | blame | history
server/conf/vhost.conf.master 2 ●●● patch | view | raw | blame | history
server/plugins-available/apache2_plugin.inc.php 33 ●●●●● patch | view | raw | blame | history
server/plugins-available/nginx_plugin.inc.php 29 ●●●●● patch | view | raw | blame | history
interface/web/sites/form/web_domain.tform.php
@@ -310,7 +310,7 @@
            'datatype'    => 'VARCHAR',
            'formtype'    => 'SELECT',
            'default'    => '',
            'value'        => array('' => 'no_redirect_txt', 'non_www_to_www' => 'non_www_to_www_txt', 'www_to_non_www' => 'www_to_non_www_txt')
            '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')
        ),
    ##################################
    # ENDE Datatable fields
interface/web/sites/templates/web_domain_redirect.htm
@@ -17,7 +17,7 @@
            </div>
            <div class="ctrlHolder">
                <label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label>
                <select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf">
                <select name="seo_redirect" id="seo_redirect" class="selectInput">
                    {tmpl_var name='seo_redirect'}
                </select>
            </div>
server/conf/nginx_vhost.conf.master
@@ -18,7 +18,7 @@
        root   <tmpl_var name='web_document_root_www'>;
        
<tmpl_if name='seo_redirect_enabled'>
        if ($http_host != "<tmpl_var name='seo_redirect_target_domain'>") {
        if ($http_host <tmpl_var name='seo_redirect_operator'> "<tmpl_var name='seo_redirect_origin_domain'>") {
            rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri? permanent;
        }
</tmpl_if>
server/conf/vhost.conf.master
@@ -253,7 +253,7 @@
<tmpl_if name="rewrite_enabled">
        RewriteEngine on
<tmpl_if name='seo_redirect_enabled'>
        RewriteCond %{HTTP_HOST} ^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
        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="redirects">
server/plugins-available/apache2_plugin.inc.php
@@ -849,15 +849,42 @@
        //$vhost_data['document_root'] = $data['new']['document_root'].'/' . $web_folder;
        
        // Set SEO Redirect
        if($data['new']['seo_redirect'] != '' && ($data['new']['subdomain'] == 'www' || $data['new']['subdomain'] == '*')){
        if($data['new']['seo_redirect'] != ''){
            $vhost_data['seo_redirect_enabled'] = 1;
            if($data['new']['subdomain'] == 'www' || $data['new']['subdomain'] == '*'){
            if($data['new']['seo_redirect'] == 'non_www_to_www'){
                $vhost_data['seo_redirect_origin_domain'] = $data['new']['domain'];
                    $vhost_data['seo_redirect_origin_domain'] = str_replace('.', '\.', $data['new']['domain']);
                $vhost_data['seo_redirect_target_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_operator'] = '';
                }
                if($data['new']['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                    // ^(example\.com|(?!\bwww\b)\.example\.com)$
                    // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                    $vhost_data['seo_redirect_origin_domain'] = '('.str_replace('.', '\.', $data['new']['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $data['new']['domain']).'))';
                    $vhost_data['seo_redirect_target_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_operator'] = '';
                }
                if($data['new']['seo_redirect'] == '*_to_www_domain_tld'){
                    $vhost_data['seo_redirect_origin_domain'] = 'www\.'.str_replace('.', '\.', $data['new']['domain']);
                    $vhost_data['seo_redirect_target_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_operator'] = '!';
                }
            }
            if($data['new']['seo_redirect'] == 'www_to_non_www'){
                $vhost_data['seo_redirect_origin_domain'] = 'www.'.$data['new']['domain'];
                $vhost_data['seo_redirect_origin_domain'] = 'www\.'.str_replace('.', '\.', $data['new']['domain']);
                $vhost_data['seo_redirect_target_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_operator'] = '';
            }
            if($data['new']['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                // ^(.+)\.example\.com$
                $vhost_data['seo_redirect_origin_domain'] = '(.+)\.'.str_replace('.', '\.', $data['new']['domain']);
                $vhost_data['seo_redirect_target_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_operator'] = '';
            }
            if($data['new']['seo_redirect'] == '*_to_domain_tld'){
                $vhost_data['seo_redirect_origin_domain'] = str_replace('.', '\.', $data['new']['domain']);
                $vhost_data['seo_redirect_target_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_operator'] = '!';
            }
        } else {
            $vhost_data['seo_redirect_enabled'] = 0;
server/plugins-available/nginx_plugin.inc.php
@@ -920,15 +920,42 @@
        }
        // Set SEO Redirect
        if($data['new']['seo_redirect'] != '' && ($data['new']['subdomain'] == 'www' || $data['new']['subdomain'] == '*')){
        if($data['new']['seo_redirect'] != ''){
            $vhost_data['seo_redirect_enabled'] = 1;
            if($data['new']['subdomain'] == 'www' || $data['new']['subdomain'] == '*'){
            if($data['new']['seo_redirect'] == 'non_www_to_www'){
                $vhost_data['seo_redirect_origin_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_target_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_operator'] = '=';
                }
                if($data['new']['seo_redirect'] == '*_domain_tld_to_www_domain_tld'){
                    // ^(example\.com|(?!\bwww\b)\.example\.com)$
                    // ^(example\.com|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.example\.com))$
                    $vhost_data['seo_redirect_origin_domain'] = '^('.str_replace('.', '\.', $data['new']['domain']).'|((?:\w+(?:-\w+)*\.)*)((?!www\.)\w+(?:-\w+)*)(\.'.str_replace('.', '\.', $data['new']['domain']).'))$';
                    $vhost_data['seo_redirect_target_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_operator'] = '~*';
                }
                if($data['new']['seo_redirect'] == '*_to_www_domain_tld'){
                    $vhost_data['seo_redirect_origin_domain'] = 'www.'.$data['new']['domain'];
                    $vhost_data['seo_redirect_target_domain'] = $vhost_data['seo_redirect_origin_domain'];
                    $vhost_data['seo_redirect_operator'] = '!=';
                }
            }
            if($data['new']['seo_redirect'] == 'www_to_non_www'){
                $vhost_data['seo_redirect_origin_domain'] = 'www.'.$data['new']['domain'];
                $vhost_data['seo_redirect_target_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_operator'] = '=';
            }
            if($data['new']['seo_redirect'] == '*_domain_tld_to_domain_tld'){
                // ^(.+)\.example\.com$
                $vhost_data['seo_redirect_origin_domain'] = '^(.+)\.'.str_replace('.', '\.', $data['new']['domain']).'$';
                $vhost_data['seo_redirect_target_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_operator'] = '~*';
            }
            if($data['new']['seo_redirect'] == '*_to_domain_tld'){
                $vhost_data['seo_redirect_origin_domain'] = $data['new']['domain'];
                $vhost_data['seo_redirect_target_domain'] = $vhost_data['seo_redirect_origin_domain'];
                $vhost_data['seo_redirect_operator'] = '!=';
            }
        } else {
            $vhost_data['seo_redirect_enabled'] = 0;