Tendo duas vezes um bloco “location / {}” no nginx

3

Para todos os nossos sites, temos um arquivo de inclusão que contém várias coisas, entre esta linha:

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

Para um único site, queremos redirecionar todas as solicitações de mysite.com/ para mysite.com/blog, como uma "correção" temporária. O bloco se parece com isso:

server {
    server_name mysite.com;
    root        /var/www/mysite;
    include     conf.d/common.conf.inc;

    # Redirect blog
    location / {
        rewrite / /blog redirect;
    }
}

Isso falha no entanto, com o seguinte erro:

Testing nginx configuration: nginx: [emerg] duplicate location "/" in /etc/nginx/sites-enabled/mysite:7

A questão

Como podemos ter um bloco de servidor com location / {} para o try_files e redirecionar todas as solicitações de / para /blog ?

    
por Jurian Sluiman 19.06.2013 / 10:50

1 resposta

2

Você pode tentar como uma solução para fazer o redirecionamento apenas a partir da localização de raiz:

 location = / {
        rewrite / /blog redirect;
    }
    
por 19.06.2013 / 13:54