diff --git a/app/models/site_construct.rb b/app/models/site_construct.rb
index 790051e..19d8930 100644
--- a/app/models/site_construct.rb
+++ b/app/models/site_construct.rb
@@ -106,7 +106,8 @@ class SiteConstruct
else
port = port.to_s
end
- redirect_default_text = get_redirect_default_text(port)
+ default_domain = get_default_domain
+ redirect_default_text = get_redirect_default_text(port, default_domain)
port_text = port
if port.to_i == 443
if self.site_cert.nil?
@@ -114,10 +115,13 @@ class SiteConstruct
end
port_text += " ssl"
end
+ domain_name_str = self.domain_name
+ if default_domain.present?
+ domain_name_str = ([default_domain] + (domain_name_str.split(/\s+/) - [default_domain])).join(" ")
+ end
if old_server_block.present?
new_server_block = old_server_block.gsub(/(listen\s+)[^;]+/){|ff| "#{$1}#{port_text}"}
- domain_name = self.domain_name
- new_server_block = new_server_block.gsub(/(server_name\s+)[^;]+/m){|ff| "#{$1}#{domain_name}"}
+ new_server_block = new_server_block.gsub(/(server_name\s+)[^;]+/m){|ff| "#{$1}#{domain_name_str}"}
new_server_block = new_server_block.gsub(/\s*ssl_certificate[^;]+;/,'')
level_2_block = parse_nginx_text_to_server_blocks(old_server_block,true,2)
get_redirect_block = level_2_block.select{|t| t.match(/\s*return\s+30[12]\s+https:\/\/\$host\$request_uri\s*;/)}
@@ -167,7 +171,7 @@ class SiteConstruct
"}\n" : '') : '')+
redirect_default_text +
' root '+self.full_site_path+'/public;\n\n'+
- ' server_name '+self.domain_name+';\n\n'+
+ ' server_name '+domain_name_str+';\n\n'+
' client_max_body_size 500m;\n\n'+
' location / {\n'+
' try_files \$uri \$uri/index.html \$uri.html @app;\n'+
@@ -186,9 +190,6 @@ class SiteConstruct
def display_port
self.port.map{|port| "#{port}"}.join("
").html_safe
end
- def get_host_with_port(port)
- self.domain_name.split().first
- end
def get_port(idx=0)
self.port[idx] rescue "80"
end
@@ -246,14 +247,14 @@ class SiteConstruct
def default_enable_redirect_default_domain
site_server.enable_redirect_default_domain rescue false
end
- def get_redirect_default_text(port=80)
+ def get_redirect_default_text(port=80,default_domain=nil)
port = port.to_i
is_enable = get_enable_redirect_default_domain
scheme = (port == 443 ? "https" : "http")
port_text = ((port == 80 || port == 443 || port.blank?) ? "" : ":#{port}")
text = ""
if is_enable
- default_domain = get_default_domain
+ default_domain = get_default_domain if default_domain.nil?
if default_domain.present?
text = "\n\n if ($host !~* (^#{default_domain.gsub('.','\.')}$) ) {\n"+
" return 302 #{scheme}://#{default_domain}#{port_text}$request_uri;\n"+