2017-10-07 101 views
0

我想爲下面的網址Nginx的動態通配符子域的域的動態URL

domain.com/user/suvojit => suvojit.domain.com

配置nginx.conf直到現在我的nginx配置如下

server { 
listen 80; ## listen for ipv4 

server_name domain.com; 
root  /var/www/html/project/frontend/web/; 
index  index.php; 

access_log /var/www/html/project/vagrant/nginx/log/frontend-access.log; 
error_log /var/www/html/project/vagrant/nginx/log/frontend-error.log; 

location/{ 
    try_files $uri $uri/ /index.php$is_args$args; 
} 

location ~ \.php$ { 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 
    try_files $uri =404; 
} 

location ~ /\.(ht|svn|git) { 
    deny all; 
}} 

我正在使用Yii2應用程序。有什麼需要指定嗎?

+0

你永遠不提到你到底想要什麼?你希望'domain.com/user/suvojit'重定向到'suvojit.domain.com',重定向完成後會發生什麼?什麼'suvojit.domain.com'服務? –

+0

實際上,當瀏覽器中出現suvojit.domain.com時,它會打開domain.com/user/suvojit頁面。我不知道它會使用nginx配置來完成。我正在使用Yii應用程序。應用程序路線中是否應該配置此場景? –

回答

0

你需要有一臺服務器塊到你的nginx配置

server { 

listen 80; ## listen for ipv4 

server_name ~^(?<user>[^.]+)\.example\.com$; 

return 301 http://example.com/user/$user; 

} 

你還需要確保你犯了一個通配符子域名進入你的DNS,以便*.domain.com解析爲您的服務器