Skip to content

Commit e64fbbc

Browse files
committed
- Added redirects for nginx.
- Added SEO redirects (both Apache & nginx) to redirect from non-www website to www website or vice versa. - Introduced placeholder [scheme] for redirect paths for alias and subdomains; will be replaced with http or https, depending on what the visitor uses.
1 parent 9d6d30a commit e64fbbc

File tree

12 files changed

+124
-28
lines changed

12 files changed

+124
-28
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE `web_domain` ADD `seo_redirect` VARCHAR( 255 ) default NULL AFTER `redirect_path`;
2+
ALTER TABLE `web_folder_user` ADD `server_id` INT( 11 ) NOT NULL DEFAULT '0' AFTER `sys_perm_other`;

install/sql/ispconfig3.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,6 +1493,7 @@ CREATE TABLE `web_domain` (
14931493
`ruby` enum('n','y') NOT NULL default 'n',
14941494
`redirect_type` varchar(255) default NULL,
14951495
`redirect_path` varchar(255) default NULL,
1496+
`seo_redirect` varchar(255) default NULL,
14961497
`ssl` enum('n','y') NOT NULL default 'n',
14971498
`ssl_state` varchar(255) NULL,
14981499
`ssl_locality` varchar(255) NULL,

interface/web/sites/form/web_aliasdomain.tform.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
'datatype' => 'VARCHAR',
113113
'formtype' => 'TEXT',
114114
'validators' => array ( 0 => array ( 'type' => 'REGEX',
115-
'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@',
115+
'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(\[scheme\]://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@',
116116
'errmsg'=> 'redirect_error_regex'),
117117
),
118118
'default' => '',

interface/web/sites/form/web_domain.tform.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,12 @@
245245
'width' => '30',
246246
'maxlength' => '255'
247247
),
248+
'seo_redirect' => array (
249+
'datatype' => 'VARCHAR',
250+
'formtype' => 'SELECT',
251+
'default' => '',
252+
'value' => array('' => 'no_redirect_txt', 'non_www_to_www' => 'non_www_to_www_txt', 'www_to_non_www' => 'www_to_non_www_txt')
253+
),
248254
##################################
249255
# ENDE Datatable fields
250256
##################################

interface/web/sites/form/web_subdomain.tform.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
'datatype' => 'VARCHAR',
113113
'formtype' => 'TEXT',
114114
'validators' => array ( 0 => array ( 'type' => 'REGEX',
115-
'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@',
115+
'regex' => '@^(([.]{0})|(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(\[scheme\]://([-\w\.]+)+(:\d+)?(/([\w/_\.\-\,\+\?\~]*(\?\S+)?)?)?)|(/[\w/_\.\-]{1,255}/))$@',
116116
'errmsg'=> 'redirect_error_regex'),
117117
),
118118
'default' => '',

interface/web/sites/lib/lang/de_web_domain.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,7 @@ $wb['save_certificate_txt'] = 'Save certificate';
7373
$wb['create_certificate_txt'] = 'Create certificate';
7474
$wb['delete_certificate_txt'] = 'Delete certificate';
7575
$wb['nginx_directives_txt'] = 'nginx Direktiven';
76+
$wb["seo_redirect_txt"] = 'SEO Redirect';
77+
$wb["non_www_to_www_txt"] = 'Nicht-www -> www';
78+
$wb["www_to_non_www_txt"] = 'www -> Nicht-www';
7679
?>

interface/web/sites/lib/lang/en_web_domain.lng

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,7 @@ $wb['save_certificate_txt'] = 'Save certificate';
7373
$wb['create_certificate_txt'] = 'Create certificate';
7474
$wb['delete_certificate_txt'] = 'Delete certificate';
7575
$wb["nginx_directives_txt"] = 'nginx Directives';
76+
$wb["seo_redirect_txt"] = 'SEO Redirect';
77+
$wb["non_www_to_www_txt"] = 'Non-www -> www';
78+
$wb["www_to_non_www_txt"] = 'www -> non-www';
7679
?>

interface/web/sites/templates/web_domain_redirect.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ <h2><tmpl_var name="list_head_txt"></h2>
1515
<label for="redirect_path">{tmpl_var name='redirect_path_txt'}</label>
1616
<input name="redirect_path" id="redirect_path" value="{tmpl_var name='redirect_path'}" size="30" maxlength="255" type="text" class="textInput" />
1717
</div>
18+
<div class="ctrlHolder">
19+
<label for="seo_redirect">{tmpl_var name='seo_redirect_txt'}</label>
20+
<select name="seo_redirect" id="seo_redirect" class="selectInput formLengthHalf">
21+
{tmpl_var name='seo_redirect'}
22+
</select>
23+
</div>
1824
</fieldset>
1925

2026
<input type="hidden" name="id" value="{tmpl_var name='id'}">

server/conf/nginx_vhost.conf.master

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ server {
1111

1212
root <tmpl_var name='web_document_root_www'>;
1313

14+
<tmpl_if name='seo_redirect_enabled'>
15+
16+
if ($http_host = "<tmpl_var name='seo_redirect_origin_domain'>") {
17+
rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri permanent;
18+
}
19+
</tmpl_if>
20+
1421
<tmpl_loop name="redirects">
1522

1623
if ($http_host ~* "<tmpl_var name='rewrite_domain'>$") {

server/conf/vhost.conf.master

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,14 @@
191191
<tmpl_if name="rewrite_enabled">
192192

193193
RewriteEngine on
194+
195+
<tmpl_if name='seo_redirect_enabled'>
196+
197+
RewriteCond %{HTTP_HOST} ^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
198+
RewriteRule ^(.*)$ http://<tmpl_var name='seo_redirect_target_domain'>/$1 [R=301,L]
199+
200+
</tmpl_if>
201+
194202
<tmpl_loop name="redirects">
195203
RewriteCond %{HTTP_HOST} <tmpl_var name='rewrite_domain'>$ [NC]
196204
RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'>$1 <tmpl_var name='rewrite_type'>
@@ -405,9 +413,17 @@
405413
<tmpl_if name="rewrite_enabled">
406414

407415
RewriteEngine on
416+
417+
<tmpl_if name='seo_redirect_enabled'>
418+
419+
RewriteCond %{HTTP_HOST} ^<tmpl_var name='seo_redirect_origin_domain'>$ [NC]
420+
RewriteRule ^(.*)$ https://<tmpl_var name='seo_redirect_target_domain'>/$1 [R=301,L]
421+
422+
</tmpl_if>
423+
408424
<tmpl_loop name="redirects">
409425
RewriteCond %{HTTP_HOST} ^<tmpl_var name='rewrite_domain'> [NC]
410-
RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target'>$1 <tmpl_var name='rewrite_type'>
426+
RewriteRule ^/(.*)$ <tmpl_var name='rewrite_target_ssl'>$1 <tmpl_var name='rewrite_type'>
411427
</tmpl_loop>
412428
</tmpl_if>
413429

0 commit comments

Comments
 (0)