nginx sites em subpastas

1

Eu tenho alguns problemas para fazer com que minha configuração nginx funcione do jeito que eu quero. Eu tenho um site example.localhost que está localizado em / vagrant / frontend / www. Minha configuração para isso, que está funcionando, é assim:

server {
    listen 80;
    server_name example.localhost;

    root /vagrant/frontend/www;
    index index.php;

    location / {
        try_files   $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Mas, quero adicionar um site de administração, localizado em / vagrant / backend / www, ao endereço example.localhost / admin. Minha configuração é assim:

location /admin {
    alias /vagrant/backend/www/;
    try_files   $uri $uri/ /index.php?$args;

    location ~ \.php$ {
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Uma solicitação para "example.localhost / admin" é processada, mas quando a URL se parece com "example.localhost / admin / site / index", parece que a localização / admin não corresponde, porque a solicitação é processado no frontend ...

Estou preso a isso há dias e qualquer ajuda seria muito apreciada!

    
por skukje 24.04.2014 / 19:21

1 resposta

0

when the url looks like "example.localhost/admin/site/index"

Se você não tiver o arquivo /var/backend/www/site/index , seu último item da diretiva try_files fará o redirecionamento interno para /index.php , que é processado por location ~ \.php$ externo

Nesta configuração, aninho os locais para PHP e fixei try_files para /admin/ location para redirecionar para /admin/index.php .

server {
    listen 80;
    server_name example.localhost;

    root /vagrant/frontend/www;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php;

        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
        }
    }

    location /admin {
        return 301 /admin/;
    }

    location /admin/ {
        alias /vagrant/backend/www/;

        try_files $uri $uri/ /admin/index.php;

        location ~ \.php$ {
            include fastcgi.conf;
            fastcgi_pass 127.0.0.1:9000;
        }
    }
}
    
por 25.04.2014 / 09:44

Tags