Nginx的动态通配符子域的域的动态URL

问题描述:

我想为下面的网址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应用程序。应用程序路线中是否应该配置此场景? –

你需要有一台服务器块到你的nginx配置

server { 

listen 80; ## listen for ipv4 

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

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

} 

你还需要确保你犯了一个通配符子域名进入你的DNS,以便*.domain.com解析为您的服务器