diff --git a/http/Provision/Config/Nginx/Ssl/vhost_ssl.tpl.php b/http/Provision/Config/Nginx/Ssl/vhost_ssl.tpl.php index 74ae15b6aa734f90b3b3fbfb94c57b8726ab06ad..9dd305763935293411a9e5eb56ccc00850d20f36 100644 --- a/http/Provision/Config/Nginx/Ssl/vhost_ssl.tpl.php +++ b/http/Provision/Config/Nginx/Ssl/vhost_ssl.tpl.php @@ -5,7 +5,19 @@ aliases as $alias_url): ?> server { listen ; - server_name ; +uri instead of + // $alias_url) + if ($this->redirection && $alias_url == $this->redirection) { + $this->uri = str_replace('/', '.', $this->uri); + print " server_name {$this->uri};\n"; + } + else { + $alias_url = str_replace('/', '.', $alias_url); + print " server_name {$alias_url};\n"; + } +?> ssl on; ssl_certificate ; ssl_certificate_key ; @@ -13,13 +25,15 @@ server { ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; keepalive_timeout 70; - rewrite ^ $scheme://uri; ?>$request_uri? permanent; + rewrite ^ $scheme://redirection; ?>$request_uri? permanent; } server { include fastcgi_params; + fastcgi_param MAIN_SITE_NAME uri; ?>; + set $main_site_name "uri; ?>"; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; fastcgi_param db_type ; @@ -29,7 +43,22 @@ server { fastcgi_param db_host ; fastcgi_param db_port ; listen ; - server_name uri; ?>redirection && is_array($this->aliases)) : foreach ($this->aliases as $alias_url) : if (trim($alias_url)) : ?> ; + server_name uri) + if ($this->redirection) { + print str_replace('/', '.', $this->redirection); + } else { + print $this->uri; + } + if (!$this->redirection && is_array($this->aliases)) { + foreach ($this->aliases as $alias_url) { + if (trim($alias_url)) { + print " " . str_replace('/', '.', $alias_url); + } + } + } ?>; root root}"; ?>; ssl on; ssl_certificate ; diff --git a/http/Provision/Config/Nginx/subdir.tpl.php b/http/Provision/Config/Nginx/subdir.tpl.php index 3ab06e7f47ed2b6d22bdda773b14e6ba46cf2784..e912d7d0776b75364f0d72e035ae92ebb4a70ba5 100644 --- a/http/Provision/Config/Nginx/subdir.tpl.php +++ b/http/Provision/Config/Nginx/subdir.tpl.php @@ -28,6 +28,15 @@ if (!$satellite_mode && $server->satellite_mode) { ####################################################### +### +### Use the main site name if available, instead of +### potentially virtual server_name when alias is set +### as redirection target. See #2358977 for details. +### +if ($main_site_name = '') { + set $main_site_name "$server_name"; +} + ### ### Master location for subdir support (start) ### @@ -136,7 +145,7 @@ location ^~ //cdn/farfuture/ { access_log off; log_not_found off; expires 30d; - try_files /sites/$server_name/files/favicon.ico /sites/$host/files/favicon.ico /favicon.ico $uri =204; + try_files /sites/$main_site_name/files/favicon.ico /sites/$host/files/favicon.ico /favicon.ico $uri =204; } ### @@ -147,9 +156,9 @@ location ^~ //cdn/farfuture/ { access_log off; log_not_found off; - try_files /sites/$server_name/files/$host.robots.txt /sites/$server_name/files/robots.txt /sites/$host/files/robots.txt /robots.txt $uri @cache_; + try_files /sites/$main_site_name/files/$host.robots.txt /sites/$main_site_name/files/robots.txt /sites/$host/files/robots.txt /robots.txt $uri @cache_; - try_files /sites/$server_name/files/$host.robots.txt /sites/$server_name/files/robots.txt /sites/$host/files/robots.txt /robots.txt $uri @drupal_; + try_files /sites/$main_site_name/files/$host.robots.txt /sites/$main_site_name/files/robots.txt /sites/$host/files/robots.txt /robots.txt $uri @drupal_; } @@ -609,7 +618,7 @@ location ^~ //cdn/farfuture/ { ### location ~* ^//(sites/.*/files/.*) { root root}"; ?>; - rewrite ^//sites/(.*)$ /sites/$server_name/$1 last; + rewrite ^//sites/(.*)$ /sites/$main_site_name/$1 last; access_log off; tcp_nodelay off; expires 30d; @@ -794,7 +803,7 @@ location ^~ //cdn/farfuture/ { add_header X-Speed-Cache-Key "$key_uri"; add_header X-NoCache "$nocache_details"; add_header X-This-Proto "$http_x_forwarded_proto"; - add_header X-Server-Name "$server_name"; + add_header X-Server-Name "$main_site_name"; root root}"; ?>; diff --git a/http/Provision/Config/Nginx/vhost.tpl.php b/http/Provision/Config/Nginx/vhost.tpl.php index a5d804b544d5408ccb22793976809e5d7cb90a75..54f336c5f9ca22d0befa93a0a671d1b2247fb423 100644 --- a/http/Provision/Config/Nginx/vhost.tpl.php +++ b/http/Provision/Config/Nginx/vhost.tpl.php @@ -60,7 +60,7 @@ if ($this->redirection || $ssl_redirection) { } elseif ($ssl_redirection && $this->redirection) { // redirect all aliases + main uri to the main https uri. - print "\n rewrite ^ https://{$this->uri}\$request_uri? permanent;\n"; + print "\n rewrite ^ https://{$this->redirection}\$request_uri? permanent;\n"; } elseif (!$ssl_redirection && $this->redirection) { print " include " . $server->include_path . "/nginx_vhost_common.conf;\n";