Nginx重定向www.X.domain.com子域名

时间:2017-02-24 08:06:27

标签: regex ubuntu nginx

我想将www.X.domain.com重定向到www.domain.com/.../X。到目前为止,我设法将X.domain.com重定向到www.domain.com/../X。在我试过的nginx配置下面。我做错了什么?

#does not work (www.X.domain.com)                                                                                                                                  
server {                                                                                                                                        
    server_name www\.(?<subdomain>)\.domain\.com$;                                                                                           

    location / {                                                                                                                                
        rewrite ^ $scheme://www.domain.com/somedir/$subdomain;                                                                             
   }                                                                                                                                           
}                                                                                                                                               

#works (X.domain.com)                                                                                                                                         
server {                                                                                                                                        
    server_name ~^(?<subdomain>\w+)\.domain\.com$;                                                                                           

    location / {                                                                                                                                
        rewrite ^ $scheme://www.domain.com/somedir/$subdomain;                                                                             
   }                                                                                                                                           
}        

1 个答案:

答案 0 :(得分:0)

您错过了\w+~正确的部分

server {                                                                                                                                        
  server_name "~^www\.(?<subdomain>\w+)\.domain\.com$";                                                                                           

  location / {                                                                                                                                
      rewrite ^ $scheme://www.domain.com/somedir/$subdomain;                                                                             
  }                                                                                                                                           
}