2016-04-12 18 views
2

を働くことができないは以下の通りです:nginxの:空のサブドメインが、私は<a href="http://bneijt.nl/blog/post/name-based-virtual-hosting-with-nginx/" rel="nofollow">http://bneijt.nl/blog/post/name-based-virtual-hosting-with-nginx/</a><br> と抜粋この記事を読ん

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

私はそれを模倣し、このように私の設定を記述します。

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

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

すべてのサブドメイン対応それは次のようなフォルダです:

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

質問:
入力がwww.aa.comの場合は動作しますが、入力するとaa.com、それは動作しません。ドメイン名の解決は問題ありません。

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; 
    } 
} 

が、私はこれを好む::

答えて

1

これを試してみてください

# 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; 
    } 
}