仅两个子域的两个位置块

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 中创建两个文件夹,两个都应该是暂存的 - 一个用于开发,第二个类似于生产(但有开发数据库)。

所以我必须在里面创建两个位置块,每个都捕获不同的域,这样一个域重定向到 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/...

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

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

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