2016-04-12 12 views
2

ich diesen Artikel zu lesen http://bneijt.nl/blog/post/name-based-virtual-hosting-with-nginx/
und Auszügen wie folgt lautet:nginx: leere Sub-Domain kann nicht funktionieren

server { 
    server_name ~^((?<subdomain>.*)\.)?(?<domain>[^.]+)\.(?<tld>[^.]+)$; 
    if ($subdomain = "") { 
     set $subdomain "_"; 
    } 
    location/{ 
     index index.html; 
     root /srv/http/vhost/${domain}.${tld}/${subdomain}; 
    } 
} 

ich es nachahmen und meine Konfiguration so schreiben:

server { 
    server_name ~^((?<subdomain>.*)\.)aa\.com$; 
    if ($subdomain = "") { 
     set $subdomain "www"; 
    } 

    location/{ 
     root /var/www/${subdomain}.aa.com/public; 
     index index.html index.htm; 
    } 
} 

Every Sub-Domain entspricht zu seinem Ordner, wie folgt:

domain name folder 
111.aa.com  /var/www/111.aa.com 
222.aa.com  /var/www/222.aa.com 

Frage:
Wenn Eingabe www.aa.com, es funktioniert, aber Eingabe , kann es nicht funktionieren, Domänennamen Auflösung ist in Ordnung, was ist das Problem?

Antwort

1

Versuchen Sie folgendes:

server { 
    server_name ~^((?<subdomain>.*)\.)aa\.com$ aa.com; 

     if ($host ~ aa.com) { 
      set $subdomain "www"; 
     } 

    location/{ 
     root /var/www/${subdomain}.aa.com/public; 
     index index.html index.htm; 
    } 
} 

aber ich ziehe dieses:

# redirect user to www.aa.com if user went to aa.com 
server { 
    server_name aa.com; 
    return 301 $scheme://www.aa.com$request_uri; 
} 

# handle subdomain part 
server { 
    server_name ~^((?<subdomain>.*)\.)aa\.com$; 

    location/{ 
     root /var/www/${subdomain}.aa.com/public; 
     index index.html index.htm; 
    } 
} 
Verwandte Themen