仅有两个子域的两个位置块

时间:2015-02-05 10:06:38

标签: php symfony nginx

我有以下服务器块:

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 个答案:

答案 0 :(得分:1)

我同意,对于不同的子域,最好创建一个单独的服务器块。如果出于某种原因想要为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;
        }
    }
}