仅用于两个子域的两个位置块


Two location blocks for only two subdomains

我有以下服务器块:

server {
   server_name *.somedomain.com
   root        /var/www/html/$rootpath/web;
   # etc...
}

它缓存根目录中的所有文件夹,并将其映射到folder_name.subdomain.com网站。

现在,我必须在symfony 2中创建两个文件夹,这两个文件夹都应该是stagings——一个用于开发,另一个类似于生产(但使用开发数据库)。

所以我必须在里面创建两个位置块,每个位置块捕获不同的域,这样一个域重定向到app.php,第二个重定向到app_dev.php,等等。

我该怎么做?位置块应该是什么样子才能捕获子域?它应该看起来像:

server {
   server_name *.somedomain.com;
   root        /var/www/html/$rootpath/web;
   location /development-staging/ {
      index app_dev.php
   }
   location /production-staging/ {
      index app.php
   }
}

但它缓存*.somedomain.com/development-staging/链接而不是development-staging.somedomain.com/。。。

我该如何解决这个问题?谢谢

我同意,对于不同的子域,最好创建一个单独的服务器块。如果出于任何原因,你想在一个服务器块中定义不同子域的特定行为,就像一样

server {
    server_name *.somedomain.com;
    root        /var/www/html/$rootpath/web;
    location / {
        if ( $host = "development-staging.somedomain.com" ) {
            index app_dev.php;
        }
        if ( $host = "production-staging.somedomain.com" ) {
            index app.php;
        }
    }
}