Você pode tentar como uma solução para fazer o redirecionamento apenas a partir da localização de raiz:
location = / {
rewrite / /blog redirect;
}
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
?